当你想用现有列表中的值创建一个新的列表的时候,list comprehension 提供了一个更简短的语法。
假设我们有如下列表:
fruits = ['apple', 'banana', 'cherry', 'kiwi', 'mango']
如果我想把单词中包含了字母a的水果加入到一个新的列表中,通常我们会:
fruits = ['apple', 'banana', 'cherry', 'kiwi', 'mango']
newlist = []
for fruit in fruits:
if 'a' in fruit:
newlist.append(fruit)
print(newlist)
但是如果我们用list comprehension 语法的话:
fruits = ['apple', 'banana', 'cherry', 'kiwi', 'mango']
newlist = [fruit for fruit in fruits if 'a' in fruit]
print(newlist)
补充说明:
我们知道 newlist = [fruit for fruit in fruits if 'a' in fruit] 输出的结果如下:
['apple', 'banana', 'mango']
那如果我们不想要返回水果名字,而是想要返回一个固定值的话,我们可以怎么做?
比如只要单词中含有a的水果全部返回0,即我们想得到列表[0, 0, 0],我们可以进行如下操作:
newlist = [0 for fruit in fruits if 'a' in fruit]