Python中的列表推导式(List Comprehension)是一种简洁的构建列表的方法。它允许你从一个已存在的列表创建出一个新列表,并且可以包含表达式和条件语句,来创建所需的值。列表推导式比使用循环语句来创建列表更加简洁和易读。
列表推导式的基本语法:
[expression for item in iterable if condition]
expression
:对于每个元素要执行的表达式,用于生成新列表的元素。item
:用于迭代的变量。iterable
:一个可迭代对象,如列表、元组或字符串。condition
:(可选)一个条件表达式,用于确定哪些元素应该包含在结果列表中。
使用列表推导式的例子:
假设我们有一个数字列表,我们想要创建一个新列表,其中包含原列表中所有数字的平方。
不使用列表推导式(使用循环):
numbers = [1, 2, 3, 4, 5]
squared = []
for number in numbers:
squared.append(number ** 2)
print(squared) # 输出: [1, 4, 9, 16, 25]
使用列表推导式:
numbers = [1, 2, 3, 4, 5]
squared = [number ** 2 for number in numbers]
print(squared) # 输出: [1, 4, 9, 16, 25]
在这个例子中,列表推导式 [number ** 2 for number in numbers]
简洁地实现了与原循环相同的功能,但代码更加紧凑和易读。
另一个例子:
如果我们想从一个列表中筛选出所有偶数,并同时将这些偶数乘以2,我们可以这样做:
numbers = [1, 2, 3, 4, 5, 6]
doubled_evens = [number * 2 for number in numbers if number % 2 == 0]
print(doubled_evens) # 输出: [4, 8, 12]
在这个例子中,列表推导式 [number * 2 for number in numbers if number % 2 == 0]
实现了筛选和转换两个步骤,展示了列表推导式在处理复杂逻辑时的强大功能。