字典(Dictionary)是Python中一种非常重要的数据结构,它提供了灵活的键值对存储方式,适用于各种实际编程场景。字典是一种可变容器模型,可以存储任意类型的对象。每个键值对用冒号 : 分割,键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中。
创建和访问字典
创建字典的基本语法如下:
my_dict = {'key1': 'value1', 'key2': 'value2'}
例如:
my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}
print(my_dict)
访问字典中的值可以通过键来实现:
print(my_dict['name']) # 输出: Alice
如果访问不存在的键,会引发 KeyError。
修改字典
可以通过以下方式向字典添加新内容或修改已有内容:
my_dict['email'] = 'alice@example.com'# 添加新键值对
my_dict['age'] = 31 # 更新已有键的值
删除字典中的元素可以使用 del 关键字:
del my_dict['city'] # 删除键为'city'的键值对
字典的常用方法
字典提供了许多内置方法来操作和处理数据:
keys(): 返回字典中所有的键。
values(): 返回字典中所有的值。
items(): 返回字典中所有的键值对。
get(key, default=None): 返回指定键的值,如果键不存在则返回默认值。
pop(key, default=None): 删除并返回指定键的值,如果键不存在则返回默认值。
例如:
print(my_dict.keys()) # 输出: dict_keys(['name', 'age', 'email'])
print(my_dict.values()) # 输出: dict_values(['Alice', 31, 'alice@example.com'])
print(my_dict.items()) # 输出: dict_items([('name', 'Alice'), ('age', 31), ('email', 'alice@example.com')])
字典的遍历
可以使用循环遍历字典的键、值和键值对:
for key in my_dict:
print(key) # 输出键
for value in my_dict.values():
print(value) # 输出值
for key, value in my_dict.items():
print(f'{key}: {value}') # 输出键值对
嵌套字典
字典中可以嵌套其他字典,形成多层结构:
nested_dict = {
'person1': {'name': 'Alice', 'age': 30},
'person2': {'name': 'Bob', 'age': 25}
}
print(nested_dict['person1']['name']) # 输出: Alice
字典排序
虽然字典本身是无序的,但可以通过一些技巧实现对字典的排序输出:
# 按键排序
sorted_keys = sorted(my_dict.keys())
sorted_dict_by_key = {key: my_dict[key] for key in sorted_keys}
print(sorted_dict_by_key)
# 按值排序
sorted_dict_by_value = {k: v for k, v in sorted(my_dict.items(), key=lambda item: item[1])}
print(sorted_dict_by_value)
字典推导式
字典推导式是一种快速创建字典的方法,类似于列表推导式:
# 创建一个字典,键为1到5的整数,值为对应整数的平方
square_dict = {num: num**2 for num in range(1, 6)}
print(square_dict) # 输出: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}