在Python 3中,字典(Dictionary)是一种无序、可变且有键(key)的集合类型,用于存储键值对。字典的键必须是唯一的,但值则不必唯一。以下是Python字典的基本用法和操作方法:
创建字典
可以使用大括号 {} 或者 dict() 构造函数来创建字典。
| mydict={} |
| type(mydict) |
| mydict=dict() |
| type(mydict) |
使用zip和dict构造函数创建字典
在有两个等长的列表的情况下,可以使用zip函数和dict构造函数创建字典
注意此种情况下,作为key的列表内不可以由重复值,否则会丢失数据。
| list1=[1,2,3,4,5] |
| list2=["a","b","c","d","e"] |
| mydict=dict(zip(list1,list2)) |
| print(mydict) |
| print(type(mydict)) |
| {1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'} |
| <class 'dict'> |
| list1=[1,2,2,4,5] |
| list2=["a","b","c","d","e"] |
| mydict=dict(zip(list1,list2)) |
| print(mydict) |
| print(type(mydict)) |
| {1: 'a', 2: 'c', 4: 'd', 5: 'e'} |
| <class 'dict'> |
使用字典推导式创建字典
| mydict={k:k+1 for k in range(1,5)} |
| print(mydict) |
| list1=[[1,2],[3,4],[5,6]] |
| mydict={k:v for k,v in list1} |
| print(mydict) |
访问字典元素
通过键来访问字典中的值
| mydict={'1': 'a', '2': 'c', '4': 'd', '5': 'e'} |
| print(f"输出:{mydict['1']}") |
如果键不存在的话,会报错。可以使用get()
获取值,如下:
| print(f"输出:{mydict.get('6', 'default_value')}") |
添加或修改字典元素
通过赋值来添加新的键值对或者修改已有的值
| mydict["1"]="g" |
| print(f"输出:{mydict['1']}") |
| mydict["10"]="gg" |
| print(f"输出:{mydict['10']}") |
删除元素
使用 del 关键字或者 pop() 方法删除字典中的元素
| del mydict['2'] |
| print(f"输出:{mydict}") |
| value = mydict.pop('4') |
| print(f"输出:value={value}") |
| print(f"输出:{mydict}") |
| 输出:{'1': 'a', '4': 'd', '5': 'e'} |
| 输出:value=d |
| 输出:{'1': 'a', '5': 'e'} |
字典元素的遍历
| |
| for each in mydict: |
| print(f"输出:{each}") |
| |
| for each in mydict.keys(): |
| print(f"输出:{each}") |
| |
| |
| for each in mydict.values(): |
| print(f"输出:{each}") |
| |
| |
| for each in mydict.items(): |
| print(f"输出:{each}") |
| |
| |
| for each1, each2 in mydict.items(): |
| print(f"输出:{each1}\t{each2}") |
| |
| |
| 输出:1 |
| 输出:5 |
| 输出:1 |
| 输出:5 |
| 输出:a |
| 输出:e |
| 输出:('1', 'a') |
| 输出:('5', 'e') |
| 输出:1 a |
| 输出:5 e |
字典的其他操作
获取字典的长度
len() 函数获取字典中键值对的数量。
clear() 方法清空字典中的所有元素。
copy() 方法复制字典。
update() 方法更新字典,将一个字典的键值对添加到另一个字典中,如果键存在则更新值。
| mydict={'1': 'a', '2': 'c', '4': 'd', '5': 'e'} |
| print(f"输出:{len(mydict)}") |
清空字典的所有元素
| mydict={'1': 'a', '2': 'c', '4': 'd', '5': 'e'} |
| mydict=mydict.clear() |
| print(f"输出:{mydict}") |
复制字典
| mydict={'1': 'a', '2': 'c', '4': 'd', '5': 'e'} |
| mydict_2=mydict.copy() |
| mydict_3=mydict |
| print(f"输出:\nmydict={id(mydict)}\nmydict_2={id(mydict_2)}\nmydict_3={id(mydict_3)}") |
| |
| |
| 输出: |
| mydict=2109565021824 |
| mydict_2=2109565019392 |
| mydict_3=2109565021824 |
更新字典
将一个字典的键值对添加到另一个字典中,如果键存在则更新值。
| mydict={'1': 'a', '2': 'c', '4': 'd', '5': 'e'} |
| mydict_2={'1': 'a',"10":"g"} |
| mydict.update(mydict_2) |
| print(f"输出:mydict={mydict}") |
| 输出:mydict={'1': 'a', '2': 'c', '4': 'd', '5': 'e', '10': 'g'} |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)