字典

本文详细介绍了Python字典的创建、删除、查询、遍历、键值判断以及元素的增删改查等操作,包括字典生成式和常用方法如get()、update()、pop()等。此外,还展示了如何利用zip()函数结合列表生成字典。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字典

内置数据结构之一,与列表一样是可变序列;以键值对的方式存储数据,是一个无序的序列。
在这里插入图片描述
字典中的键是唯一的,值是可以重复的。键必须是不可变对象。

a = {'年龄':23,'身高':160,'体重':100}
print(a['年龄']) # 通过键取值
23

创建与删除

使用花括号创建

a = {'年龄':23,'身高':160,'体重':100} # 使用{}创建字典时,键要加引号 
a
{'年龄': 23, '身高': 160, '体重': 100}

使用内置函数dict()

dict(年龄=23,身高=160,体重=100,名字='小明') # 使用dict函数创建字典时,键不需要加引号
dict
{'年龄': 23, '身高': 160, '体重': 100, '名字': '小明'}
# fromkeys方法与dict函数搭配使用,允许使用序列来创建字典key
b = dict.fromkeys(['年龄','身高','体重']) # 默认值为None,可在第二个参数传入想要的值
b
{'年龄': None, '身高': None, '体重': None}

查询操作

第一种方法,和列表相似,使用[ ],但是字典没有下标,只能通过键名提取,也就是字典名[键]
这种⽅法有⼀个弊端:如果字典中不存在 key ,会报 KeyError 错误

a = dict(年龄=23,身高=160,体重=100,名字='小明')
a['年龄']
23
a['成绩']
---------------------------------------------------------------------------

KeyError                                  Traceback (most recent call last)

<ipython-input-12-a62ae14fb333> in <module>
----> 1 a['成绩']


KeyError: '成绩'

第二种方法,使用字典get()方法取值。如果不存在key,则返回None或自己指定的值

a = dict(年龄=23,身高=160,体重=100,名字='小明')
a.get('年龄')
23
print(a.get('成绩'))
print(a.get('成绩',90)) # 指定值
None
90
# 遍历
a = dict(年龄=23,身高=160,体重=100,名字='小明')
for item in a: # 遍历字典的键
    print(item,a[item]) # 获取字典的键,值
年龄 23
身高 160
体重 100
名字 小明

key的判断

# 返回字典中所有键key
a = dict(年龄=23,身高=160,体重=100,名字='小明')
print(a.keys(),type(a.keys()))
print(list(a.keys())) # 转化为列表

# 返回字典中所有值value
print(a.values(),type(a.values()))

# 判断某元素是否存在字典中
print('年龄' in a)
print(60 in a)
dict_keys(['年龄', '身高', '体重', '名字']) <class 'dict_keys'>
['年龄', '身高', '体重', '名字']
dict_values([23, 160, 100, '小明']) <class 'dict_values'>
True
False
# 返回字典中所有键值对items
a = dict(年龄=23,身高=160,体重=100,名字='小明')
print(a.items(),type(a.items()))
for item in a.items(): 
    print(item) # 返回元组
dict_items([('年龄', 23), ('身高', 160), ('体重', 100), ('名字', '小明')]) <class 'dict_items'>
('年龄', 23)
('身高', 160)
('体重', 100)
('名字', '小明')

元素的增、删、改

修改 /新增

# 字典秉承”有则更新,无则添加“的原则
a = dict(年龄=23,身高=160,体重=100,名字='小明')
print(a)
a['年龄']=25
print(a)
a['成绩']=90
print(a)
{'年龄': 23, '身高': 160, '体重': 100, '名字': '小明'}
{'年龄': 25, '身高': 160, '体重': 100, '名字': '小明'}
{'年龄': 25, '身高': 160, '体重': 100, '名字': '小明', '成绩': 90}
# 使用update()方法批量更新字典,在该方法中传入对应的键值
a.update(年龄=28,成绩=90) # 键无需添加引号
a
{'年龄': 28, '身高': 160, '体重': 100, '名字': '小明', '成绩': 90}

删除

# 删除字典里键值对是使用del语句 del 字典名[键]
a = dict(年龄=23,身高=160,体重=100,名字='小明')
print(a)
del a['年龄']
print(a)
{'年龄': 23, '身高': 160, '体重': 100, '名字': '小明'}
{'身高': 160, '体重': 100, '名字': '小明'}
# 使⽤ pop() ⽅法删除,该方法删除字典给定的键及对应的值;pop() 可返回值,返回值为被删除的值
a = dict(年龄=23,身高=160,体重=100,名字='小明')
b = a.pop('年龄')
print(a)
print(b)
{'身高': 160, '体重': 100, '名字': '小明'}
23
# 使⽤ popitem() 删除字典最后⼀个键值对,popitem() 返回的是⼀个元组
a = dict(年龄=23,身高=160,体重=100,名字='小明')
b = a.popitem()
print(a)
print(b)
{'年龄': 23, '身高': 160, '体重': 100}
('名字', '小明')
# 清空字典 clear()
a = dict(年龄=23,身高=160,体重=100,名字='小明')
print(a)
a.clear()
print(a)
{'年龄': 23, '身高': 160, '体重': 100, '名字': '小明'}
{}

字典生成式

将第一个列表中元素作为键,将第二个列表中元素作为值,生成一个字典。

使用内置函数zip():用于将可迭代的对象作为参数,将对象中对应的元素打包成一个元组,然后返回由这些元组组成的列表

items =['name','age','weight']
values = ['ming',23,100]
a={item:value for item,value in zip(items,values)} 
c={a:b for a,b in zip(items,values)} 
print(a)
print(c)
{'name': 'ming', 'age': 23, 'weight': 100}
{'name': 'ming', 'age': 23, 'weight': 100}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值