Python 字典推导式
字典是 Python 中一种常用的数据结构,用于存储键值对。在实际的编程过程中,我们经常需要通过其他数据结构或者逻辑计算来创建字典。为了简化代码的编写,Python 提供了字典推导式(Dictionary comprehension)这一功能。本文将详细介绍字典推导式的用法和常见应用场景。
1. 字典推导式的基本语法
字典推导式允许我们使用简洁的语法一次性创建一个字典。其基本语法形式为:
{key_expression: value_expression for expression in iterable if condition}
其中,key_expression 表示字典中键的表达式,value_expression 表示字典中值的表达式,expression 是可迭代对象中的元素,condition 是条件语句(可选)。
值得注意的是,字典推导式中的键是唯一的,如果存在重复的键,后面的键值对会覆盖前面的键值对。
2. 字典推导式的示例
下面通过一些实例来进一步了解字典推导式的用法。
2.1 创建一个简单的字典
假设我们想创建一个简单的字典,包含从 1 到 5 的数字作为键,对应的平方作为值,可以使用以下字典推导式来实现:
d = {x: x**2 for x in range(1, 6)}
print(d)
输出为:
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
2.2 过滤键值对
在字典推导式中,我们可以使用条件语句对键值对进行过滤。例如,我们想创建一个字典,包含从 1 到 10 的数字中平方值为偶数的键值对,可以使用以下代码:
d = {x: x**2 for x in range(1, 11) if x**2 % 2 == 0}
print(d)
输出为:
{2: 4, 4: 16, 6: 36, 8: 64, 10: 100}
2.3 交换字典的键和值
在某些情况下,我们需要交换字典的键和值。字典推导式也可以帮助我们实现这一功能。例如,假设我们有以下字典:
d = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
我们可以使用以下字典推导式来交换键和值:
d = {value: key for key, value in d.items()}
print(d)
输出为:
{1: 'a', 2: 'b', 3: 'c', 4: 'd'}
2.4 使用条件语句设置默认值
在一些情况下,我们希望通过字典推导式设置默认值。例如,假设我们有一个列表,我们想创建一个字典,列表中的每个元素作为键,如果存在对应的值则使用该值,否则使用默认值 0,可以使用以下代码:
lst = [1, 2, 3, 4, 5]
d = {x: x**2 for x in lst if x**2 % 2 == 0}
print(d)
输出为:
{2: 4, 4: 16}
3. 总结
本文介绍了 Python 字典推导式的基本语法和常见应用场景。通过字典推导式,我们可以简化代码,一次性创建并初始化一个字典。同时,字典推导式也支持对键值对进行过滤、交换键和值、设置默认值等操作。在实际的编程过程中,我们可以根据具体的需求灵活运用字典推导式。