(4) Python字典(dictionary)详解

字典 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.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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值