鉴于A
和B
是整数列表,您将如何添加单个元素并使用它们的总和创建新列表?这段代码有什么问题,你会怎么做?错误分别是:
ValueError:要解压缩的值太多
和
NameError:名称'b'未定义
C = [a+b for (a,b) in (A,B)]
C = [a+b for a in A, b in B]
答案 0 :(得分:6)
答案 1 :(得分:0)
您可以使用map,sum和zip:
>>> A=[1,2,3]
>>> B=[10,20,30]
>>> map(sum, zip(A, B))
[11, 22, 33]
如果您的列表长度不同,则可以使用值为0的izip_longest作为填充值:
>>> from itertools import izip_longest
>>> A=[1,2,3]
>>> B=[10,20,30,40]
>>> map(sum, izip_longest(A, B, fillvalue=0))
[11, 22, 33, 40]
>>> map(sum, izip_longest(A, B, [100], fillvalue=0))
[111, 22, 33, 40]