python之字典(dict)
在 Python 项目中,字典(dict
)是一种非常常用的数据结构。字典是一种键值对(key-value pair)的集合,具有快速查找、插入和删除的特点。
1. 创建字典
使用大括号 {}
# 创建一个空字典
my_dict = {}
# 创建一个带有初始值的字典
my_dict = {"name": "Alice", "age": 25, "city": "New York"}
使用 dict()
构造函数
# 使用关键字参数创建字典
my_dict = dict(name="Alice", age=25, city="New York")
# 使用键值对的列表创建字典
my_dict = dict([("name", "Alice"), ("age", 25), ("city", "New York")])
2. 访问和修改字典
访问字典中的值
my_dict = {"name": "Alice", "age": 25, "city": "New York"}
# 通过键访问值
name = my_dict["name"]
print(name) # 输出 "Alice"
修改字典中的值
my_dict = {"name": "Alice", "age": 25, "city": "New York"}
# 修改值
my_dict["age"] = 26
print(my_dict) # 输出 {'name': 'Alice', 'age': 26, 'city': 'New York'}
3. 添加和删除键值对
添加键值对
my_dict = {"name": "Alice", "age": 25}
# 添加新的键值对
my_dict["city"] = "New York"
print(my_dict) # 输出 {'name': 'Alice', 'age': 25, 'city': 'New York'}
删除键值对
my_dict = {"name": "Alice", "age": 25, "city": "New York"}
# 使用 del 关键字删除键值对
del my_dict["age"]
print(my_dict) # 输出 {'name': 'Alice', 'city': 'New York'}
# 使用 pop() 方法删除键值对并返回值
city = my_dict.pop("city")
print(city) # 输出 "New York"
print(my_dict) # 输出 {'name': 'Alice'}
4. 字典方法
get()
方法
my_dict = {"name": "Alice", "age": 25}
# 使用 get() 方法访问值,如果键不存在则返回默认值
age = my_dict.get("age", 0)
print(age) # 输出 25
# 键不存在时返回默认值
city = my_dict.get("city", "Unknown")
print(city) # 输出 "Unknown"
keys()
、values()
和 items()
方法
my_dict = {"name": "Alice", "age": 25, "city": "New York"}
# 获取所有键
keys = my_dict.keys()
print(keys) # 输出 dict_keys(['name', 'age', 'city'])
# 获取所有值
values = my_dict.values()
print(values) # 输出 dict_values(['Alice', 25, 'New York'])
# 获取所有键值对
items = my_dict.items()
print(items) # 输出 dict_items([('name', 'Alice'), ('age', 25), ('city', 'New York')])
update()
方法
my_dict = {"name": "Alice", "age": 25}
# 使用 update() 方法更新字典
my_dict.update({"age": 26, "city": "New York"})
print(my_dict) # 输出 {'name': 'Alice', 'age': 26, 'city': 'New York'}
5. 字典遍历
遍历键
my_dict = {"name": "Alice", "age": 25, "city": "New York"}
for key in my_dict:
print(key, my_dict[key])
# 输出:
# name Alice
# age 25
# city New York
遍历值
my_dict = {"name": "Alice", "age": 25, "city": "New York"}
for value in my_dict.values():
print(value)
# 输出:
# Alice
# 25
# New York
遍历键值对
my
items()
items()
方法返回一个包含字典所有键值对的视图对象,每个键值对以元组的形式存在。你可以使用 items()
方法来遍历字典中的所有键值对。下面是一些具体的示例,展示了如何使用 items()
方法来遍历字典。
示例 1:基本用法
my_dict = {"name": "Alice", "age": 25, "city": "New York"}
# 使用 items() 方法遍历字典的键值对
for key, value in my_dict.items():
print(f"Key: {key}, Value: {value}")
# 输出:
# Key: name, Value: Alice
# Key: age, Value: 25
# Key: city, Value: New York
示例 2:在函数中使用
def print_dict_items(d):
for key, value in d.items():
print(f"Key: {key}, Value: {value}")
my_dict = {"name": "Alice", "age": 25, "city": "New York"}
print_dict_items(my_dict)
# 输出:
# Key: name, Value: Alice
# Key: age, Value: 25
# Key: city, Value: New York
示例 3:条件过滤
my_dict = {"name": "Alice", "age": 25, "city": "New York", "country": "USA"}
# 只打印值为字符串类型的键值对
for key, value in my_dict.items():
if isinstance(value, str):
print(f"Key: {key}, Value: {value}")
# 输出:
# Key: name, Value: Alice
# Key: city, Value: New York
# Key: country, Value: USA
示例 4:修改字典中的值
my_dict = {"name": "Alice", "age": 25, "city": "New York"}
# 将所有字符串类型的值转换为大写
for key, value in my_dict.items():
if isinstance(value, str):
my_dict[key] = value.upper()
print(my_dict)
# 输出:
# {'name': 'ALICE', 'age': 25, 'city': 'NEW YORK'}
示例 5:嵌套字典的遍历
nested_dict = {
"person1": {"name": "Alice", "age": 25},
"person2": {"name": "Bob", "age": 30}
}
# 遍历嵌套字典
for person, details in nested_dict.items():
print(f"{person}:")
for key, value in details.items():
print(f" {key}: {value}")
# 输出:
# person1:
# name: Alice
# age: 25
# person2:
# name: Bob
# age: 30
示例 6:统计字典中的值
my_dict = {"apple": 3, "banana": 2, "orange": 5}
# 计算所有值的总和
total = sum(value for key, value in my_dict.items())
print(f"Total: {total}")
# 输出:
# Total: 10