Python字典推导式
- 什么是字典推导式?
- 字典推导式应用场景
- 转换列表为字典
- 过滤字典
- 反转键值对
什么是字典推导式?
字典推导式(Dictionary Comprehension) 是 Python 提供的一种语法糖,允许我们通过简短的表达式创建字典。它的基本语法类似于列表推导式,只不过用于生成字典。
字典推导式的基本语法:
{key_expr: value_expr for item in iterable}
其中:
- key_expr 是键的表达式
- value_expr 是值的表达式
- iterable 是可迭代对象(如列表、元组等)
示例 1:生成平方数的字典
squares = {x: x**2 for x in range(5)}
print(squares) # 输出: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
字典推导式应用场景
转换列表为字典
字典推导式非常适合将两个列表转换为字典。假设我们有两个列表,一个代表键,另一个代表值,使用字典推导式可以快速地将它们合并为字典。
keys = ['name', 'age', 'gender']
values = ['Alice', 30, 'Female']
person = {keys[i]: values[i] for i in range(len(keys))}
print(person) # 输出: {'name': 'Alice', 'age': 30, 'gender': 'Female'}
过滤字典
示例 2:过滤掉字典中值小于 10 的元素
numbers = {'a': 15, 'b': 8, 'c': 20, 'd': 5}
filtered_numbers = {k: v for k, v in numbers.items() if v >= 10}
print(filtered_numbers) # 输出: {'a': 15, 'c': 20}
反转键值对
字典推导式可以很容易地反转字典中的键和值。假设我们有一个字典,键和值一一对应,使用字典推导式可以迅速将键值对反转。
original_dict = {'a': 1, 'b': 2, 'c': 3}
reversed_dict = {v: k for k, v in original_dict.items()}
print(reversed_dict) # 输出: {1: 'a', 2: 'b', 3: 'c'}