Python 对多个列表(超过两个)的值求和

Yai*_*air 4 python zip list

寻找一种Python式的方法来对多个列表中的值求和:我有以下列表:

a = [0,5,2]
b = [2,1,1]
c = [1,1,1]
d = [5,3,4]
my_list = [a,b,c,d]
Run Code Online (Sandbox Code Playgroud)

我正在寻找输出:

[8,10,8]
Run Code Online (Sandbox Code Playgroud)

我用过:

print ([sum(x) for x in zip(*my_list )])
Run Code Online (Sandbox Code Playgroud)

但 zip 仅当 my_list 中有 2 个元素时才有效。任何想法?

sch*_*ggl 5

zip适用于任意数量的迭代:

>>> list(map(sum, zip(*my_list)))
[8, 10, 8]
Run Code Online (Sandbox Code Playgroud)

当然,这大致相当于你的理解,这也有效:

>>> [sum(x) for x in zip(*my_list)]
[8, 10, 8]
Run Code Online (Sandbox Code Playgroud)