python3 字典的使用方法

在Python 3中,字典(Dictionary)是一种无序、可变且有键(key)的集合类型,用于存储键值对。字典的键必须是唯一的,但值则不必唯一。以下是Python字典的基本用法和操作方法:

创建字典

可以使用大括号 {} 或者 dict() 构造函数来创建字典。

mydict={}
type(mydict)
mydict=dict()
type(mydict)
dict

使用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)
{1: 2, 2: 3, 3: 4, 4: 5}
list1=[[1,2],[3,4],[5,6]]
mydict={k:v for k,v in list1}
print(mydict)
{1: 2, 3: 4, 5: 6}

访问字典元素

通过键来访问字典中的值

mydict={'1': 'a', '2': 'c', '4': 'd', '5': 'e'}
print(f"输出:{mydict['1']}")
输出:a

如果键不存在的话,会报错。可以使用get()获取值,如下:

print(f"输出:{mydict.get('6', 'default_value')}")
输出:default_value

添加或修改字典元素

通过赋值来添加新的键值对或者修改已有的值

mydict["1"]="g"
print(f"输出:{mydict['1']}")
mydict["10"]="gg"
print(f"输出:{mydict['10']}")
输出:g
输出:gg

删除元素

使用 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}")
# 输出的是字典的key对应的值
for each in mydict.keys():
print(f"输出:{each}")
# 输出的是字典的key对应的值
for each in mydict.values():
print(f"输出:{each}")
# 输出的是字典的value对应的值
for each in mydict.items():
print(f"输出:{each}")
# 输出的是字典的key:value对应的键值对,此时可以使用两个变量进行接收。
for each1, each2 in mydict.items():
print(f"输出:{each1}\t{each2}")
# 输出的each1和each2分别对应的是字典的key和value
输出: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)}")
输出:4

清空字典的所有元素

mydict={'1': 'a', '2': 'c', '4': 'd', '5': 'e'}
mydict=mydict.clear()
print(f"输出:{mydict}")
输出:None

复制字典

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'}
posted @   Kevinarcsin001  阅读(19)  评论(0编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示