字典的创建
首先需要注意,字典是由键值对(key=>value)组成,成对出现的,其中key是不能改变的值,如整数,浮点数,字符串,元组等
Python的字典实现使用的是hash表,它是一个数组,他的索引是通过键的hash函数获得的。
先看看字典的定义吧
# key不能改变
dict1 = {
3: 3,
2: 4,
2.1: 3,
'sd': 2,
4: 'ss'
}
print('dict1 = ', dict1)
运行结果:
使用元组作为key:
lst1 = [2, 1, 3]
tup1 = (2, 1, 3)
dict2 = {
tup1: lst1
}
print('dict2 = ', dict2)
运行结果:
需要注意,如果使用list作为key,运行则会报错。
dict3 = {
lst1: tup1
}
print('dict3 = ', dict3)
如图:
字典的使用
插值:
dict4 = {
3: 3,
2: 4,
2.1: 3
}
print(type(dict4))
print('dict4 = ', dict4)
dict4[21] = 36
print('dict4 = ', dict4)
dict4[3] = 13
print('dict4 = ', dict4)
print(dict4[3])
运行结果:
如代码所示,使用[]取值,如果key存在,则修改value,如果key不存在则添加value。
如果在dict里面想要获取对应的value,最好不用如上所示的print(dict4[3])去取value,使用get方法获取。
dict4 = {
3: 3,
2: 4,
2.1: 3
}
print(type(dict4))
print('dict4 = ', dict4)
dict4[21] = 36
print('dict4 = ', dict4)
dict4[3] = 13
print('dict4 = ', dict4)
print(dict4[3])
print(dict4.get(3))
print(dict4.get(13))
通过这种方式,如果key写错了,或者key不存在,都不会引起报错,只会返回一个None
访问字典里面所有的key,value
print(dict4.keys())
print(dict4.values())
print(dict4.items())
运行结果:
清空字典:
可以使用pop和clear
print('dict4 = ', dict4)
dict4.pop(3)
print('dict4 = ', dict4)
dict4.clear()
print('dict4 = ', dict4)
运行结果:
字典的更新:除了使用key重新赋值,还可以使用一个dict更新另一个dict
dict4 = {
3: 3,
2: 4,
2.1: 3
}
dict5 = {
1: 11,
2: 22
}
dict5.update(dict4)
print('dict5 = ', dict5)
使用dict4来更新dict5,运行结果:
虽然dict5有key是2,但是使用dict4更新dict5,会把相同的key的value覆盖掉,所以留下了diect4的value
还有另一种方式也可以更新:
dict4 = {
3: 3,
2: 4,
2.1: 3
}
dict5 = {
1: 11,
2: 22
}
dict6 = {**dict5, **dict4}
print('dict6 = ', dict6)
运行结果:
运行出来和使用update是相同的结果,具体原理还不清楚。
dict的copy和fromkeys
copy:返回一个字典的浅复制
fromkeys:创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
print('dict6 = ', dict6)
dict7 = dict6.copy()
print('dict7 = ', dict7)
dict6.clear()
dict6 = dict6.fromkeys(dict7)
print('dict6 = ', dict6)
运行结果:
以上就是字典的主要功能,本文结束。