我下面有一个python代码
x = [1, 2,1]
y = [0]
lis=[l+r for l,r in zip(x+y,y+x)]
lis
输出为[1,3,3,1] 不确定如何运作
答案 0 :(得分:3)
让我们分解一下。
x+y
和
y+x
x+y
使用元素[1, 2, 1, 0]
创建一个新列表,而y+x
将创建[0, 1, 2, 1]
。
zip(x+y,y+x)
zip
然后将2个列表合并为一个元组列表:[(1, 0), (2, 1), (1, 2), 0, 1)]
[l+r for l,r in zip(x+y,y+x)]
现在我们知道zip(x+y,y+x)
生成的内容了,它只是一个列表函数,它将元组(l+r
部分)中的2个值再次加到一个数字中,然后将其存储回一个列表中:[1+0, 2+1, 1+2, 0+1] = [1, 3, 3, 1]