字典(Dictionary)是一种非常强大的数据结构,用于存储键值对(key-value pairs)。字典是无序的、可变的,并且键必须是唯一的。
1. 字典的基本概念
键值对:字典中的每个元素由一个键(key)和一个值(value)组成,格式为 "key: value"。
键的唯一性:字典中的键必须是唯一的,如果重复,后面的键值对会覆盖前面的。
无序性:字典中的元素是无序的(Python 3.7 及以上版本中,字典会保持插入顺序)。
可变性:字典是可变的,可以动态添加、修改或删除键值对。
2. 创建字典
方法 1:使用花括号 {}
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
print(my_dict) # 输出: {'name': 'Alice', 'age': 25, 'city': 'New York'}
方法 2:使用 dict()构造函数
my_dict = dict(name='Alice', age=25, city='New York')
print(my_dict) # 输出: {'name': 'Alice', 'age': 25, 'city': 'New York'}
方法 3:从键值对列表创建
my_dict = dict([('name', 'Alice'), ('age', 25), ('city', 'New York')])
print(my_dict) # 输出: {'name': 'Alice', 'age': 25, 'city': 'New York'}
3. 访问字典中的值
通过键访问:
print(my_dict['name']) # 输出: Alice
使用 get()`方法:
如果键不存在,get()`会返回 None`或指定的默认值,而不会抛出异常。
print(my_dict.get('name')) # 输出: Alice
print(my_dict.get('country', 'Unknown')) # 输出: Unknown(键不存在时返回默认值)
4. 添加或修改字典中的值
添加或修改:
my_dict['country'] = 'USA' # 添加新键值对
my_dict['age'] = 26 # 修改已有键的值
print(my_dict) # 输出: {'name': 'Alice', 'age': 26, 'city': 'New York', 'country': 'USA'}
使用 update()方法:
可以将一个字典的键值对合并到另一个字典中。
my_dict.update({'age': 27, 'gender': 'Female'})
print(my_dict) # 输出: {'name': 'Alice', 'age': 27, 'city': 'New York', 'country': 'USA', 'gender': 'Female'}
5. 删除字典中的键值对
使用 del语句:
del my_dict['city']
print(my_dict) # 输出: {'name': 'Alice', 'age': 27, 'country': 'USA', 'gender': 'Female'}
使用pop()方法:
删除指定键并返回其值。
age = my_dict.pop('age')
print(age) # 输出: 27
print(my_dict) # 输出: {'name': 'Alice', 'country': 'USA', 'gender': 'Female'}
使用popitem()方法:
删除并返回最后一个插入的键值对。
key, value = my_dict.popitem()
print(key, value) # 输出: gender Female
print(my_dict) # 输出: {'name': 'Alice', 'country': 'USA'}
使用 clear()`方法:
清空字典中的所有键值对。
my_dict.clear()
print(my_dict) # 输出: {}
6. 遍历字典
遍历键:
for key in my_dict:
print(key) # 输出: name, age, city
遍历值:
for value in my_dict.values():
print(value) # 输出: Alice, 25, New York
遍历键值对:
for key, value in my_dict.items():
print(key, value) # 输出: name Alice, age 25, city New York
7. 字典的常用操作
检查键是否存在:
if 'name' in my_dict:
print("Name exists") # 输出: Name exists
获取字典的长度:
print(len(my_dict)) # 输出: 3
复制字典:
new_dict = my_dict.copy()
print(new_dict) # 输出: {'name': 'Alice', 'age': 25, 'city': 'New York'}
8. 字典推导式
字典推导式是一种快速创建字典的方法,类似于列表推导式。示例:
squares = {x: x**2 for x in range(1, 6)}
print(squares) # 输出: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
9. 嵌套字典
字典可以嵌套使用,即字典的值可以是另一个字典。
示例:
students = {
'Alice': {'age': 25, 'city': 'New York'},
'Bob': {'age': 22, 'city': 'Los Angeles'}
}
print(students['Alice']['city']) # 输出: New York
10. 运用
# ABC代指字典名,A代指字典中存的元素,a代指该元素的释义
ABC = {"A":"a", "B":"b", "C":"c"}
ABC["D"] = "d"
ABC["E"] = "e"
print(ABC)
x = input("请输入您要查找到字母:")
if x in ABC:
print("您查询的"+ x + "含义如下:")
print(ABC[x])
else:
# len(字典名)可以用于计算字典中的元素量
print("字典中查询不到此字母\n当前字典中共存储"+str(len(ABC))+"条")
11. 总结
字典是一种键值对的数据结构,键必须是唯一的。
字典支持动态添加、修改和删除键值对。
常用的操作包括访问值、遍历、检查键是否存在、复制等。
字典推导式可以快速创建字典。
字典可以嵌套使用,适合存储复杂的数据结构。