列表生成式(List Comprehension)是Python中的一种简洁且高效的创建列表的方式。通过列表生成式,你能够在一行代码中构造出列表,而不用使用多个循环或其他控制结构。
1、语法格式如下:
[expression for item in iterable if condition]
其中:
expression是要生成的列表元素的表达式。item是从iterable(一个可迭代对象)中取出的元素。condition是一个可选的条件,它决定了expression是否会添加到最终的列表中。
2、基本示例
# 创建一个包含0到9的平方的列表
squares = [x**2 for x in range(10)]
print(squares)
# Output: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
# 创建一个只包含偶数的列表
evens = [x for x in range(20) if x % 2 == 0]
print(evens)
# Output: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
# 嵌套循环的列表生成式
multiplication_table = [(x, y) for x in range(1, 4) for y in range(1, 4)]
print(multiplication_table)
# Output: [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
# 创建一个包含非负数平方值的列表,对于负数保持原值:
nums = [-1, 2, -3, 4]
transformed = [x if x < 0 else x ** 2 for x in nums]
print(transformed)
# Output: [-1, 4, -3, 16]
通过列表生成式,不仅可以提高代码的可读性,还能显著减少代码行数,非常适合在对数据进行简单变换时使用。然而,对于过于复杂的逻辑或多层嵌套的情况,使用传统的循环和条件语句可能会更直观。
1万+

被折叠的 条评论
为什么被折叠?



