列表形式输出字典的键与值_Python入门字典dict

本文介绍了Python字典的基本操作,包括定义、访问、新增与修改字典值,删除字典元素,以及字典遍历和常用函数。重点讲解了如何通过key获取value,避免KeyError的方法,以及字典的无序性、键的唯一性和不可变性特点。

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

Dict 字典是无序,可修改,它能存储任何数据,数据结构和json类似。

字典最大的特点,访问速度特别快,不管字典的数据量有多大,他们的访问速度都是一样。定义字典不管有10条数据和10万条数据,子要你内存足够他的访问数据都是一样。

一、字典定义

字典的每个值都具备自己独有的名称即键( key ),每个 key 都有对应的值( value ),字典中的 key 和 value 必须成对出现 。整个字典包括在花括号‘{ }’中,它的每个键值 ( key => value )对使用冒号( : )分割,每对值之间用逗号( , )分割。

定义如记录人员成绩的字典,如下:

d = {'Woodman': 95, 'Alan': 85, 'Bobo': 59}

我们把姓名 Woodman、Alan、Bobo 称为key,对应的成绩 95、85、59 称为value,dict 字典可以通过 key 来查找值,一个 key:value 算作一个值。

注意:dict字典用的键( key )必须是唯一的,但值则不必。一个字典中不能出现相同名称的键( key ),但值能相同,值可以是任何数据类型(字符串、数字、元组、列表、字典等)。
# 混合字典 key不重复,值可以是任意类型
d = {'woodman': 98, 2.5: 'PM', 'Bobo': [89, 65, 34],'Mydict': {'Alan': 99}}
拓展:dict 的最大特点是查找速度快,无论 dict 有10个元素还是10万个元素,查找速度都一样。

二、访问字典

1、获取 dict 字典的值

我们可以使用 dict [ key ] 来获取所需要的值。

d = {'woodman': 98, 9.86: 'GM', 'Bobo': [89, 65, 34], 'Mydict': {'Alan': 99}}
print(d['woodman'])
print(d[9.86])
print(d['AA']) # 会抛出KeyError异常,表示无此键(key)

通过 key 访问 dict 的 value,只要 key 存在,dict就返回对应的 value。如果key不存在,会直抛出 KeyError 异常。

怎么避免KeyError错误?

有两种方法:

第一种使用 key in dict 选判读字典中是否存在此key;

另一种是 dict 自带的 get方法 dict.get(key) ,在 key 不存在的时候,返回 None

d = {'woodman': 98, 9.86: 'GM', 'Bobo': [89, 65, 34], 'Mydict': {'Alan': 99}}
if 'woodman' in d: # d字典中有woodman
print(d['woodman'])
if 'Aric' in d: # 判断字典中是否有Aric键
print(d['Aric'])

print(d.get('Bobo')) # d字典中有Bobo,返回BoBo对应的值
print(d.get('my')) # d字典中无my,返回None
注意:dict 字典根据 key 存储值,他是无序的所以我们不能通过索引号访问数据( Python3.6 后字典为有序)

2、获取 dict 字典的所有的键 keys 和所有的值 values(获取的是key和values的迭代对象)

dict.keys() # 获取所有键 key 的可迭代对象

dict.values() # 获取字典所有的值 value 的可迭代对象

d = {'woodman': 98, 9.86: 'GM', 'Bobo': [89, 65, 34], 'Mydict': {'Alan': 99}}
print(d.keys()) # 获取字典所有的键的可迭代对象
print(d.values()) # 获取字典所有的值的可迭代对象

输出:

dict_keys(['woodman', 'Bobo', 'Mydict', 9.86])
dict_values([98, [89, 65, 34], {'Alan': 99}, 'GM'])

(楼下有杠精,加上一条说明)

注意:输出的是一个迭代对象的视图,如果要输出list,需要用list(d.key()) 进行强制转换。

三、新增与修改字典值

dict[key] = value 新增或修改字典值,当 key 不存在字典中时新增值,存在是则修改它的值

dict.update( otherdict ) 批量更新或增加值,根据o therdict 字典更新 dice 字典,otherdict 中有 dice 没有的值就新增,dice 中有的值就修改为 otherdict 中的值

d = {'woodman': 98, 9.86: 'GM', 'Bobo': [89, 65, 34], 'Mydict': {'Alan': 99}}
d['Bobo'] = 98 # 更新Bobo的值
print(d)
d['Aric'] = 66 # 字典中无Aric的值,添加Aric
print(d)
d1 = {'Aric': "I'm Ariv", 'woodman': "I'm woodman"}
d.update(d1) # 根据d1字典更新d字典,没有的值新增,有的值修改
print(d)
注意:我们 key 一旦定义我们不能修改 key

四、删除字典元素

dict.pop(key) # 删除对应键值

dict.clear() # 清空 dict

del dict[ key ] # 删除对应键值

del dict # 删除 dict,dict 无法访问

示例:

d = {'woodman': 98, 9.86: 'GM', 'Bobo': [89, 65, 34], 'Mydict': {'Alan': 99}}
d.pop(9.86) # 删除9.86 对应的值
print(d) # 输出结果 无9.86
del d['woodman'] # 删除单个键值
print(d) # 输出结果无woodman
d.clear() # 清空dict的键值,不会删除引用d
print(d) # d还能访问
del d # 删除字典d的引用
print(d) # 字典d无法访问,出现NameError异常

五、字典遍历

1、通过 key 遍历

d = {'woodman': 98, 9.86: 'GM', 'Bobo': [89, 65, 34], 'Mydict': {'Alan': 99}}
for key in d:
print(d[key])

输出:

GM
98
[89, 65, 34]
{'Alan': 99}

2、通过 dict.items 遍历

d = {'woodman': 98, 9.86: 'GM', 'Bobo': [89, 65, 34], 'Mydict': {'Alan': 99}}
for key, value in d.items():
print(key, ':', value)

输出:

9.86 : GM
Bobo : [89, 65, 34]
Mydict : {'Alan': 99}
woodman : 98

说明:dict.items() 是得到一个可迭代对象,视图如下,

dict_items([(9.86, 'GM'), ('woodman', 98), ('Mydict', {'Alan': 99}), ('Bobo', [89, 65, 34])])

六、字典常用函数

len( dict ) 计算字典元素个数,即键的总数

d = {'woodman': 98, 9.86: 'GM', 'Bobo': [89, 65, 34], 'Mydict': {'Alan': 99}}
print(len(d)) # 打印字典键的个数,4个

七、字典常用方法(看看就可以)

dict.clear() 删除字典内所有元素

dict.copy() 返回一个字典的浅复制

dict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值

dict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值

dict.items() 以列表返回可遍历的(键, 值) 迭代对象

dict.keys() 以列表返回一个字典所有的键

dict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default

dict.update(dict2) 把字典dict2的键/值对更新到dict里

dict.values() 以列表返回字典中的所有值

pop(key[,default]) 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。否则,返回default值。

popitem() 随机返回并删除字典中的一对键和值。

八、总结

记住以下几点:

1、字典的键值对是无序的( Python3.6 开始有序),值可修改,定义字典时键值( key=>value )必须成对出现;

2、字典的键(key)不可以重复,键重复时值以最后一个为准;

3、字典的键必须不可变,所以可以用数字,字符串或元组充当,而不能用列表;

4、不管字典的数据量有多大,他们的访问速度都是一样的。

fc1b8684e4f9eff28329d70e3b0aa8ae.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值