当前位置: 首页 > news >正文

Python字典dict的初始化方法

文章目录

  • 简介
  • 直接初始化
  • dict()构造函数​
  • 键值对列表转换​
  • zip()合并键值​
  • 字典推导式​
  • fromkeys()默认值初始化​
  • 动态键值赋值​
  • collections.defaultdict
  • JSON 反序列化​
  • 参考文献

简介

Python 中的字典(dict)是​​最核心的数据结构之一​​,它以键值对(key-value)形式存储数据,具有极高的灵活性和性能。核心用途:

  1. 快速数据检索​。原理​​:字典基于哈希表实现,查询时间复杂度为 O(1)
  2. 计数器与统计
  3. 数据分组与聚合​
  4. 配置管理​
  5. 模拟JSON结构​
  6. 缓存与记忆化​
  7. 快速去重​
  8. 实现哈希表高级结构
  9. 动态属性存储​
  10. 多级数据映射​




直接初始化

d = {'name': 'Alice', 'age': 25}
print(d)  # {'name': 'Alice', 'age': 25}




dict()构造函数​

d = dict(name='Alice', age=25)  # 关键字参数(键必须是合法变量名)
print(d)  # {'name': 'Alice', 'age': 25}




键值对列表转换​

pairs = [('name', 'Alice'), ('age', 25)]
d = dict(pairs)  # 从二元组列表创建
print(d)  # {'name': 'Alice', 'age': 25}




zip()合并键值​

keys = ['name', 'age']
values = ['Alice', 25]
d = dict(zip(keys, values))  # 合并两个列表
print(d)  # {'name': 'Alice', 'age': 25}




字典推导式​

keys = ['name', 'age']
values = ['Alice', 25]
d = {k: v for k, v in zip(keys, values)}  # 推导式创建
print(d)  # {'name': 'Alice', 'age': 25}




fromkeys()默认值初始化​

keys = ['name', 'age']
d = dict.fromkeys(keys, None)  # 所有键的值设为None
print(d)  # {'name': None, 'age': None}d = dict.fromkeys(keys, 0)     # 所有键的值设为0
print(d)  # {'name': 0, 'age': 0}




动态键值赋值​

d = {}
d['name'] = 'Alice'  # 动态添加键值
d['age'] = 25
print(d)  # {'name': 'Alice', 'age': 25}




collections.defaultdict

from collections import defaultdictd = defaultdict(int)  # 默认值为0
d['count'] += 1  # 自动初始化缺失键
print(d)  # defaultdict(<class 'int'>, {'count': 1})




JSON 反序列化​

import jsonjson_str = '{"name": "Alice", "age": 25}'
d = json.loads(json_str)  # JSON转字典
print(d)  # {'name': 'Alice', 'age': 25}




参考文献

  1. 映射类型 — dict — Python 文档
http://www.dtcms.com/a/337487.html

相关文章:

  • 亚马逊合规风暴升级:三类账号风险预警与防御体系构建
  • 图论Day5学习心得
  • 晨控CK-GW08S与欧姆龙PLC配置Ethernet/IP通讯连接手册
  • CAN总线的安全性
  • fit函数
  • 我们为什么需要时序数据库?
  • Image and Video Tokenization with Binary Spherical Quantization 论文阅读
  • Windows桌面自动化的革命性突破:深度解析Windows-MCP.Net Desktop模块的技术奥秘
  • 【音视频】芯片、方案、市场信息收集
  • (52) QT 里使用枚举类,可以把其作为类对象,构造出来的。enum A{ m, n, p }; qDebug() << A(1);
  • 用户态网络缓冲区设计
  • C++常见考点与易错点详细教程
  • SAP 数据脱敏工具:SNP TDO如何满足新颁敏感信息政策要求
  • 视觉语言导航(8)——任务驱动的架构增强 3.3
  • Redis——基础篇
  • 当使用STL容器去存放数据时,是存放对象合适,还是存放对象指针(对象地址)合适?
  • 将std容器的正向迭代器转换成反向迭代器
  • SCAU学习笔记 - 校科联自科二面通关指南
  • 淘宝扭蛋机小程序开发:引领电商娱乐化新潮流
  • Python循环语句 从入门到精通
  • Qt——对话框 QDialog
  • 51c大模型~合集170
  • Codeforces I Will Definitely Make It
  • 构建情感智能体:下一代AI心理助手的架构与实践
  • 折扣大牌点餐api接口对接适合本地生活吗?
  • QT中同时兼任VS2019和VS2022套件
  • 企业级大模型微调指南:数据准备、参数调优与部署优化全流程
  • 从0-1使用Fastmcp开发一个MCP服务,并部署到阿里云百炼 -持续更新中
  • 大数据服务完全分布式部署- 其他组件(阿里云版)
  • 数字隔离器,变频器安全运行的 “隐形引擎”