Python 的字典 (dictionary) 是一种可变容器模型,且可存储任意类型对象。字典中的每个元素由一个键和一个值组成,键和值之间使用冒号分隔。字典用‘{}’括起来,每个键值对之间使用逗号分隔。
dict = {'性别': '男', '年龄': 20, '身高': 180}
字典的键必须是不可变的类型,如字符串、数字,值可以是任意类型的对象。
1、访问字典
dict = {'性别': '男', '年龄': 20, '身高': 180}
print(dict['性别']) # 男
2、修改字典
dict = {'性别': '男', '年龄': 20, '身高': 180}
dict['年龄'] = 21
print(dict) # {'性别': '男', '年龄': 21, '身高': 180}
3、添加字典元素
dict = {'性别': '男', '年龄': 20, '身高': 180}
dict['体重'] = 70
print(dict) # {'性别': '男', '年龄': 20, '身高': 180, '体重': 70}
4、删除字典元素
dict = {'性别': '男', '年龄': 20, '身高': 180}
del dict['性别']
print(dict) # {'年龄': 20, '身高': 180}
由于字典无序,所以我们需要对字典进行排序才能更好的应对实际需求。
dict = {'a': 20, 'b': 10, 'c': 30}
dict = dict(sorted(dict.items(), key=lambda x:x[1]))
print(dict) # {'b': 10, 'a': 20, 'c': 30}
dict = {'a': 20, 'c': 30, 'b': 10}
dict = dict(sorted(dict.items(), key=lambda x:x[0]))
print(dict) # {'a': 20, 'b': 10, 'c': 30}
有时候我们需要将多个字典合并成一个,可以使用 update() 方法实现。
dict1 = {'a': 20, 'c': 30}
dict2 = {'b': 10, 'd': 40}
dict1.update(dict2)
print(dict1) # {'a': 20, 'c': 30, 'b': 10, 'd': 40}
字典推导式是一种快速创建字典的方法。
even_dict = {x: x**2 for x in range(11) if x % 2 == 0}
print(even_dict) # {0: 0, 2: 4, 4: 16, 6: 36, 8: 64, 10: 100}
Python 的变量是对象的引用,当我们对变量进行拷贝时,只是拷贝了对象的引用,并没有拷贝对象本身。
dict1 = {'a': 20, 'c': 30, 'b': 10}
dict2 = dict1 # 此时修改 dict1, dict2也会发生改变
dict3 = dict1.copy() # 此时拷贝了对象本身,两者独立
dict1['a'] = 40
print(dict1) # {'a': 40, 'c': 30, 'b': 10}
print(dict2) # {'a': 40, 'c': 30, 'b': 10}
print(dict3) # {'a': 20, 'c': 30, 'b': 10}
有时我们需要给字典中不存在的键设置默认值,可以使用 setdefault() 方法实现。
sports = {'篮球': 20, '足球': 15}
sports.setdefault('乒乓球', 0)
print(sports) # {'篮球': 20, '足球': 15, '乒乓球': 0}
标签: 自媒体