Python 字典(Dictionary)是一种可变容器模型,可以存储任意类型的对象。字典是由键(key)和值(value)组成的,键和值之间用冒号(:)分隔,键值对之间用逗号(,)分隔,整个字典被包含在花括号({})中。本篇博客将详细介绍 Python 字典的使用,包括创建、添加、删除、查询和遍历等方面。
创建字典
创建字典可以使用花括号({})或者 dict() 函数。使用花括号创建字典时需要指定键值对,键和值之间用冒号(:)分隔,多个键值对之间用逗号(,)分隔。例如:
# 使用花括号创建字典
d1 = {'name': 'Tom', 'age': 18, 'gender': 'male'}
# 使用 dict() 函数创建字典
d2 = dict(name='Jerry', age=20, gender='female')
添加和修改键值对
添加和修改键值对可以使用索引方式或者 update() 方法。使用索引方式添加或修改键值对时,如果键已存在,则修改对应的值,否则添加新的键值对。例如:
# 添加或修改键值对
d1['name'] = 'Alice' # 修改键 name 的值为 Alice
d1['height'] = 170 # 添加新的键值对 height: 170
使用 update() 方法可以一次添加或修改多个键值对。update() 方法接受另一个字典或者可迭代对象作为参数,如果参数是字典,则添加或修改对应的键值对,否则将参数解析为键值对序列添加或修改。例如:
# 一次添加或修改多个键值对
d1.update({'age': 20, 'weight': 60}) # 修改键 age 的值为 20,添加新的键值对 weight: 60
d1.update(zip(['age', 'weight'], [22, 65])) # 修改键 age 的值为 22,weight 的值为 65
删除键值对
删除键值对可以使用 del 关键字或者 pop() 方法。使用 del 关键字可以直接删除指定键值对,如果键不存在则抛出 KeyError 异常。例如:
# 删除键值对
del d1['gender'] # 删除键 gender 的键值对
使用 pop() 方法可以删除指定键值对并返回对应的值,如果键不存在则抛出 KeyError 异常或者返回指定的默认值。例如:
# 删除并返回指定键的值
age = d1.pop('age') # 删除键 age 的键值对并返回对应的值
weight = d1.pop('weight', 70) # 删除键 weight 的键值对并返回对应的值,默认值为 70
查询键值对
查询键值对可以使用索引方式或者 get() 方法。使用索引方式查询键值对时,如果键不存在则抛出 KeyError 异常。例如:
# 查询键值对
name = d1['name'] # 获取键 name 的值,如果键不存在则抛出 KeyError 异常
使用 get() 方法可以查询指定键的值,如果键不存在则返回指定的默认值。例如:
# 查询指定键的值
age = d1.get('age') # 获取键 age 的值,如果键不存在则返回 None
height = d1.get('height', 0) # 获取键 height 的值,如果键不存在则返回默认值 0
遍历字典
遍历字典可以使用 for 循环和 items() 方法。for 循环遍历字典时,会依次访问字典中的键,可以使用索引方式获取对应的值。例如:
# for 循环遍历字典
for key in d1:
value = d1[key]
print(key, value)
使用 items() 方法可以同时遍历字典中的所有键值对,每个键值对被解析为一个元组。例如:
# 使用 items() 方法遍历字典
for key, value in d1.items():
print(key, value)
keys() 和 values() 方法
Python 字典提供了 keys() 和 values() 方法来分别获取所有键和所有值。这两个方法都返回一个可迭代对象,可以使用 for 循环遍历获取所有键或所有值。例如,假设有以下字典:
d = {'name': 'Tom', 'age': 18, 'gender': 'male'}
可以使用 keys() 方法来获取所有键:
keys = d.keys() # dict_keys(['name', 'age', 'gender'])
可以使用 values() 方法来获取所有值:
values = d.values() # dict_values(['Tom', 18, 'male'])
需要注意的是,keys() 和 values() 方法返回的是一个视图对象(view object),它们会随着字典的变化而变化。如果需要获取一个不随字典变化的列表,可以使用 list() 函数将其转换为列表。
keys_list = list(keys) # ['name', 'age', 'gender']
values_list = list(values) # ['Tom', 18, 'male']
总结
本篇博客详细介绍了 Python 字典的创建、添加、删除、查询和遍历等方面。字典是一种非常重要的数据结构,可以方便地存储和访问任意类型的对象。掌握字典的使用技巧对于 Python 编程来说是非常重要的。