2017-07-26 38 views
0

我想知道是否有可能更新列表理解中的值。更新列表理解內的值

我想到的是這樣的:

a = [1,2] 
b = [3,1,0] 
ans = [0]*(n+m-1) 
print [ans[i+j] += a[i]*b[j] for i in xrange(len(a)) for j in xrange(len(b))] 

回答

1

簡短的回答:沒有。 理解列表提供了創建列表的簡潔方法。

在你的情況雖然,你仍然可以使用一個理解列表創建列表(不更新):

a = [1,2] 
b = [3,1,0] 
ans = [sum((a[i]* b[s-i] for i in range(max(0, s-len(b)+1), min(len(a),s+1)))) for s in range(len(a)+len(b)-1)] 
print ans