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 = [expression for item in iterable if condition == True]
返回值是一个新列表,旧列表保持不变。
条件
此Condition(条件)类似于一个过滤器,它只接受计算结果为True的项。
条件 if x != "apple" 将对除"apple"之外的所有元素返回 `True`,从而使新列表包含除"apple"之外的所有水果。
条件是可选的,可以省略。
可迭代对象
可迭代对象可以是任何可迭代对象,例如列表、元组、集合等等。
同样的例子,但加上一个条件:
表达式
表达式是当前迭代项,同时也是迭代结果,您可以在它最终成为新列表中的列表项之前对其进行操作:
您可以将结果设置为您想要的任何值:
表达式也可以包含条件,但并非像过滤器那样,而是作为一种操纵结果的方式。:
上例中的表达式表示:
"如果不是香蕉,则返回该物品;如果是香蕉,则返回橙子。"

