2026-10-21 18:54:26
Python推导式是一种高效的数据处理方式,能够从一个数据序列快速构建另一个新的数据序列。它支持列表、字典、集合和生成器等多种数据结构,语法简洁且功能强大。以下是各类推导式的详细说明及示例:
1. 列表推导式(List Comprehension)格式:[out_exp_res for out_exp in input_list if condition]
示例:
# 生成0-9的平方列表squares = [x2 for x in range(10)] # 输出: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]# 带条件的列表推导式even_squares = [x2 for x in range(10) if x % 2 == 0] # 输出: [0, 4, 16, 36, 64]2. 字典推导式(Dict Comprehension)格式:{key_expr: value_expr for value in collection if condition}
示例:
# 将列表转换为字典(元素为键,平方为值)num_dict = {x: x2 for x in range(5)} # 输出: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}# 交换字典的键值对original_dict = {'a': 1, 'b': 2}swapped_dict = {v: k for k, v in original_dict.items()} # 输出: {1: 'a', 2: 'b'}3. 集合推导式(Set Comprehension)格式:{expression for item in Sequence if conditional}
示例:
# 生成平方数的集合(自动去重)unique_squares = {x2 for x in [-2, -1, 0, 1, 2]} # 输出: {0, 1, 4}4. 元组推导式(生成器表达式)格式:(expression for item in Sequence if conditional)
示例:
# 生成元组的生成器表达式gen_expr = (x2 for x in range(5))tuple_result = tuple(gen_expr) # 输出: (0, 1, 4, 9, 16)# 直接迭代生成器for num in (x for x in range(3)): print(num) # 输出: 0 1 2关键注意事项推导式是Python中高效处理数据的利器,合理使用能显著提升代码简洁性与执行效率。根据需求选择合适类型(列表、字典、集合或生成器),并始终以代码可读性为前提。