Python - 列表推导式
列表推导式
当你想基于现有列表的值创建新列表时,列表推导式提供了一种更简洁的语法。
示例
基于水果列表,你想要一个新的列表,其中只包含名字中带有字母“a”的水果。
不使用列表推导式,你将不得不编写一个 for
语句,并在其中包含一个条件测试。
示例
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = []
for x in fruits
if "a" in x
newlist.append(x)
print(newlist)
自己动手试一试 »
使用列表推导式,你可以在一行代码中完成所有这些操作。
示例
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = [x for x in fruits if "a" in x]
print(newlist)
自己动手试一试 »
语法
newlist = [表达式 for 项 in 可迭代对象 if 条件 == True]
返回值是一个新列表,原有列表保持不变。
条件
条件 就像一个过滤器,只接受求值为 True
的项。
条件 if x != "apple" 将返回除“apple”之外的所有元素的 True
,从而使新列表包含除“apple”之外的所有水果。
条件 是可选的,可以省略。
可迭代对象
可迭代对象 可以是任何可迭代对象,例如列表、元组、集合等。
相同的例子,但带有一个条件
表达式
表达式 是当前迭代中的项,但它也是结果,你可以在它最终成为新列表中的列表项之前对其进行操作。
你可以将结果设置为任何你喜欢的值。
表达式 也可以包含条件,不是作为过滤器,而是作为一种操作结果的方式。
上面的例子中的表达式 说
“如果项不是 banana,则返回该项;如果是 banana,则返回 orange”。