python字典
一. 字典的创建
# 有数据字典 dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} # 空字典 dict2 = {} dict3 = dict() print(type(dict3)) # <class 'dict'>
二. 字段的常见操作
1. 新增/修改
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} dict1['name'] = 'Rose' print(dict1) # {'name': 'Rose', 'age': 20, 'gender': '男'} dict1['id'] = 110 print(dict1) # {'name': 'Rose', 'age': 20, 'gender': '男', 'id': 110}
2. 删除
2.1. del 删除指定键值对
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} del dict1['gender'] print(dict1) # 结果:{'name': 'Tom', 'age': 20}
2.2. clear() 清空字典
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} dict1.clear() print(dict1) # {}
2.3 pop()删除指定key的元素,并返回被删除元素的value,如果指定key不存在,则返回默认值,没有指定默认值且key不存在则报错
a = {"bb":1, "cc":2} c = a.pop("bb") # 删除key为bb的元素,并返回bb对应的value print(c) print(a) c = a.pop("dd", 3) # key不存在,返回指定的默认值3 print(c) print(a) c = a.pop("ee") # key不存在,且没有指定默认值,报错:KeyError: 'ee'
执行结果:
1 {'cc': 2} 3 {'cc': 2} Traceback (most recent call last): File "D:/work/code/test_pro/hash_demo.py", line 52, in <module> c = a.pop("ee") # key不存在,且没有指定默认值,报错:KeyError: 'ee' KeyError: 'ee'
3. 查询
3.1. 直接获取
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} print(dict1['name']) # Tom print(dict1['id']) # KeyError: 'id'
注意:key不存在时会报错
3.2. get() 方法获取
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} print(dict1.get('name')) # Tom print(dict1.get('id', 110)) # 第二个参数为默认值,110 print(dict1.get('id')) # None
注意:key不存在时返回None
3.3. keys() 获取所有的key
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} print(type(dict1.keys())) # <class 'dict_keys'> print(dict1.keys()) # dict_keys(['name', 'age', 'gender'])
注意:获取到的不是简单的列表,类型为dict_keys,获取到的对象为可迭代对象
3.4. values() 获取所有的value
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} print(dict1.values()) # dict_values(['Tom', 20, '男'])
3.5. items() 获取所有的键值对到元组列表
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} print(dict1.items()) # dict_items([('name', 'Tom'), ('age', 20), ('gender', '男')])
4. 字典的遍历
4.1. 通过keys() 方法遍历
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} for key in dict1.keys(): print(dict1[key])
4.2. 通过items() 方法遍历
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} for item in dict1.items(): print(item) for key, value in dict1.items(): print(f'{key} = {value}')
5. 对字典进行排序
d = { 'a':2, 'b':3, 'c':1 } print(sorted(d)) # ['a', 'b', 'c']
- 得到的是key排序后的列表
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构