python学习——038如何将for循环改写成列表推导式

在 Python 里,列表推导式是一种能够简洁生成列表的表达式,可用于替换普通的 for 循环。下面是列表推导式的基本语法和常见应用场景。

基本语法

result = []
for item in iterable:
    result.append(expression)
result = [expression for item in iterable]

常见场景

  1. 简单转换
    普通循环:
squares = []
for x in range(10):
    squares.append(x**2)
squares = [x**2 for x in range(10)]
  1. 带条件的过滤
    普通循环:
even_numbers = []
for x in range(10):
    if x % 2 == 0:
        even_numbers.append(x)
even_numbers = [x for x in range(10) if x % 2 == 0]
  1. 嵌套循环
pairs = []
for x in [1, 2, 3]:
    for y in [3, 1, 4]:
        if x != y:
            pairs.append((x, y))
pairs = [(x, y) for x in [1, 2, 3] for y in [3, 1, 4] if x != y]

最后:

  1. 列表推导式会直接生成整个列表,所以在处理大规模数据时,可能会占用较多内存。这种情况下,你可以考虑使用生成器表达式(把方括号换成圆括号)。
  2. 不要过度使用列表推导式。要是逻辑太过复杂,使用普通的 for 循环会让代码更具可读性。
  3. 列表推导式支持多层嵌套循环和多个条件判断,但要留意保持代码的清晰度。
原文链接:,转发请注明来源!