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中
示例2freshfruit = [' banana', ' loganberry', ' passion fruit'] aList = [w.strip() for w in freshfruit] #1 ['banana', 'loganberry', 'passion fruit']
每当 #1循环一次,就把一个w.strip()放入到list中
.strip()函数会去掉字符串的前导空格
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)]



