文章目录
字典 dictionary { }
1)Python 3中 字典(dictionary,简写dict)是一种可变容器模型,用 {} 标识,由键值对组成。键和值之间用 :分隔,不同键值对之间用 , 分隔。键值对是两个相关联的值,每个键 都与一个值相关联,你可以使用键来访问与之相关联的值。
2)键必须是唯一的,不可变的,键可以是数字、字符串。
dict2 = {1: 'a', 2: 'b', 2: 'f', 2: 'g', 3: 'c'}
print(dict2[2]) # 打印 g
- 值可以不唯一,值可以是数字、字符串、列表乃至字典。
1. 字典基本操作
1.1 访问字典中的值
通过指定字典名和键去获取与键相关联的值
dict1 = {1: 'a', 2: 'b', 3: 'c', '3': 'e'}
print(dict1) # 打印 {1: 'a', 2: 'b', 3: 'c', '3': 'e'}
dict1['3'] = 'f'
print(dict1[3]) # 打印 c
print(dict1) # 打印 {1: 'a', 2: 'b', 3: 'c', '3': 'f'}
1.2 添加键值对
字典是一种动态结构,可随时在其中添加键值对。要添加键值对,可依次指定字典名、用方括号括起的键和相关联的值
dict1 = {} # 创建空字典
dict1[1] = 'a'
dict1[2] = 'b'
dict1[3] = 'c'
print(dict1)
# {1: 'a', 2: 'b', 3: 'c'}
1.3 删除键值对
使用del 语句将相应的键—值对彻底删除。使用del 语句时,须指定字典名和要删除的键。
dict1 = {1: 'a', 2: 'b', 3: 'c', '3': 'e'}
print(dict1) # 打印 {1: 'a', 2: 'b', 3: 'c', '3': 'e'}
del dict1['3']
print(dict1) # 打印 {1: 'a', 2: 'b', 3: 'c'}
2. 遍历字典
2.1 遍所有键值对 .items()
users = {'key1': 'a', 'key2': 'b', 'key3': 'c', 'key4': 'd'}
for key, value in users.items():
print(key + ' ' + value)
# 打印 key1 a key2 b key3 c key4 d
2.2 遍历所有键 .keys()
在不需要使用字典中的值时,方法keys() 很有用。
users = {'key1': 'a', 'key2': 'b', 'key3': 'c', 'key4': 'd'}
for key_data in users.keys():
print(key_data)
# 打印 key1 key2 key3 key4
遍历字典时,会默认遍历所有的键,因此,如果将上述代码中的for name in favorite_languages.keys(): 替换为for name in favorite_languages: ,输出
将不变。
for key_data in users:
print(key_data)
# 打印 key1 key2 key3 key4
2.3 遍历所有值 .values()
users = {'key1': 'a', 'key2': 'b', 'key3': 'c', 'key4': 'd'}
for value_data in users.values():
print(value_data)
# 打印 a b c d
3. 嵌套
有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套
3.1 列表中存储字典
dict_1 = {'key1': 'a', 'key2': 'b', 'key3': 'c'}
dict_2 = {'key1': 'd', 'key2': 'e', 'key3': 'f'}
dict_3 = {'key1': 'g', 'key2': 'h', 'key3': 'i'}
list_test = [dict_1, dict_2, dict_3]
for data in list_test:
if data['key2'] == 'e':
print(data)
# 打印{'key1': 'd', 'key2': 'e', 'key3': 'f'}
3.2 字典中存储列表
dict_1 = {'key1': 'a', 'key2': 'b', 'key3': ['c', 'd', 'e']}
print(dict_1['key3'][0]) # 打印 c
print(dict_1['key3'][1]) # 打印 d
print(dict_1['key3'][2]) # 打印 e
3.3 字典中存储字典
dict_1 = {
'key_1': {
'k1_1': 'a',
'k1_2': 'b',
'k1_3': 'c',
},
'key_2': {
'k2_1': 'd',
'k2_2': 'e',
'k2_3': 'f',
}
}
print(dict_1['key_1']['k1_2']) # 打印 b
print(dict_1['key_2']['k2_3']) # 打印 f
for data in dict_1['key_1'].values():
print(data) # 打印 a b c