Python 列表理解

大神打扰一下,Python 列表理解
最新回答
与我无关

2026-04-13 19:05:14

Python 列表推导式(List Comprehension)是一种简洁高效创建列表的方法,通过单行代码实现元素的转换和过滤。以下是核心要点和示例:

1. 基本语法new_list = [expression for item in iterable if condition]
  • expression:对元素的操作(如计算、函数调用等)。
  • iterable:可迭代对象(如列表、字符串、范围等)。
  • condition(可选):过滤条件,仅当满足时保留元素。
2. 常见用法示例示例 1:生成平方数列表squares = [x2 for x in range(10)]# 输出:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]示例 2:过滤偶数evens = [x for x in range(20) if x % 2 == 0]# 输出:[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]示例 3:字符串处理words = ["hello", "world"]upper_words = [word.upper() for word in words]# 输出:['HELLO', 'WORLD']示例 4:嵌套循环pairs = [(x, y) for x in range(3) for y in range(3)]# 输出:[(0, 0), (0, 1), (0, 2), (1, 0), ..., (2, 2)]示例 5:带条件的推导式result = [x if x % 2 == 0 else -x for x in range(10)]# 输出:[0, -1, 2, -3, 4, -5, 6, -7, 8, -9]3. 优势
  • 简洁性:用单行替代多行循环。
  • 可读性:接近自然语言描述。
  • 性能:通常比等效的循环更快(因内部优化)。
4. 注意事项
  • 避免复杂逻辑:若推导式过长(如多层嵌套),建议改用普通循环以提高可读性。
  • 内存消耗:直接生成完整列表,大数据量时考虑生成器表达式((x for x in iterable))。
5. 进阶技巧
  • 字典推导式:dict_comp = {x: x2 for x in range(5)}# 输出:{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
  • 集合推导式:set_comp = {x % 3 for x in range(10)}# 输出:{0, 1, 2}

通过列表推导式,Python 能够以优雅的方式处理数据转换和过滤,是提升代码效率的利器。