Python 中字典和列表完全不同,字典里的对象是无序的,它是通过一对对的键和值来反映一种映射关系。
字典里每个键都是唯一的,我们可以通过键来存取对应的值,而不能像列表那样通过位置来进行索引。
创建
创建一个字典很容易,可以使用以下语句定义一个词典
D1 = {
'name': {'first': 'Bob', 'last': 'Smith'},
'job': ['dev', 'mgr'],
'age': 35,
'addr': 'Los Angeles'
}
print(D1)
print(type(D1))
# 输出
{'name': {'first': 'Bob', 'last': 'Smith'}, 'job': ['dev', 'mgr'], 'age': 35, 'addr': 'Los Angeles'}
<class 'dict'>
可以看到字典可以好汉任意数据类型,即所谓的异构性,甚至可以嵌套字典结构,并且没有顺序,即所谓的无序性。
读
利用键值即可取出其中的变量
D1 = {
'name': {'first': 'Bob', 'last': 'Smith'},
'job': ['dev', 'mgr'],
'age': 35,
'addr': 'Los Angeles'
}
print(D1['age'])
# 输出
35
补充一点,如果要读取一个字典中的键,但是并不确定字典中是否存在,那么可以用 in 进行判断。
D2['name'] = 'John'
D2['age'] = 24
# 错误写法
print(D2['sex'])
## 输出
Traceback (most recent call last):
File "/Users/kane/PycharmProjects/LearnPython/main.py", line 224, in <module>
print(D2['sex'])
KeyError: 'sex'
# 方式1
print('sex' in D2)
## 输出
False
# 方式2
if 'sex' in D2:
print(D2['sex'])
else:
print('Error')
## 输出
Error
写
可以直接利用赋值语句对字典进行填充
D2 = {}
D2['name'] = 'John'
D2['age'] = 24
print(D2)
# 输出
{'name': 'John', 'age': 24}
但是如果键值还未定义或者由程序动态生成,那么上述方法就有点愚蠢了,可以使用动态生成字典的方式进行实现
K_LIST = ['x', 'y', 'z']
V_LIST = [3, 4, 5]
D3 = dict(zip(K_LIST, V_LIST))
print(D3)
# 输出
{'x': 3, 'y': 4, 'z': 5}
也可以用列表或元组直接进行生成字典
D4 = dict([('a',1),('b',2),('c',3)])
print(D4)
# 输出
{'a': 1, 'b': 2, 'c': 3}
字典合并
D5 = {
'name': 'John',
'age': 18,
'like': ['swim', 'jump'],
'sex': 'man'
}
print(D5)
D6 = {
'name': 'Kane',
'qq': 123456,
'link': 'www.xx.com'
}
D5.update(D6)
print(D5)
# 输出
{'name': 'John', 'age': 18, 'like': ['swim', 'jump'], 'sex': 'man'}
{'name': 'Kane', 'age': 18, 'like': ['swim', 'jump'], 'sex': 'man', 'qq': 123456, 'link': 'www.xx.com'}
小贴士:需要注意的是如果字典中有冲突的键,那么会进行无规律覆盖,应尽量避免此类情况,谨慎使用此方法。
本文由 柒 创作,采用 知识共享署名4.0
国际许可协议进行许可。
转载本站文章前请注明出处,文章作者保留所有权限。
最后编辑时间: 2021-04-30 11:38 AM