示例1
aList = [x * x for x in range(10)]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
这个分为两部分:
x * x
for x in range(10) # 1
每当 #1循环一次,就把一个 x ∗ x x*x x∗x放入到list中
示例2
freshfruit = [' banana', ' loganberry', ' passion fruit']
aList = [w.strip() for w in freshfruit] #1
['banana', 'loganberry', 'passion fruit']
每当 #1循环一次,就把一个w.strip()放入到list中
.strip()函数会去掉字符串的前导空格
示例3
vec = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
[num for elem in vec for num in elem] # 1
[1, 2, 3, 4, 5, 6, 7, 8, 9]
#1相当于一个两重循环
ans = []
for elem in vec:
for num in elem:
ans.append(num)
示例4
aList = [-1, -4, 6, 7.5, -2.3, 9, -11]
[i for i in aList if i > 0]
[6, 7.5, 9]
示例5
from random import randint
x = [randint(1, 10) for i in range(20)]
[8, 10, 9, 1, 10, 5, 1, 10, 6, 2, 3, 10, 2, 2, 7, 4, 10, 7, 7, 7]
m = max(x)
[index for index, value in enumerate(x) if value == m] # 1
[1, 4, 7, 11, 16]
#1相当于:
ans = []
for index, value in enumerate(x):
if value == m:
ans.append(index)
示例6
[(x, y) for x in [1, 2, 3] for y in [3, 1, 4] if x != y]
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]