我有一些数字列表:
[1, 2, 3, 4, 5]
[2, 3, 4, 5, 6]
[3, 4, 5, 6, 7]
假设我使用的所有列表长度相同,如何添加这些列表的元素?
这是我希望从上述列表中获得的输出类型。
[6, 9, 12, 15, 18]
我知道我需要某种循环——但我怎样才能优雅地做到这一点?
我有一些数字列表:
[1, 2, 3, 4, 5]
[2, 3, 4, 5, 6]
[3, 4, 5, 6, 7]
假设我使用的所有列表长度相同,如何添加这些列表的元素?
这是我希望从上述列表中获得的输出类型。
[6, 9, 12, 15, 18]
我知道我需要某种循环——但我怎样才能优雅地做到这一点?
>>> lis=[[1,2,3,4,5],[2,3,4,5,6],[3,4,5,6,7]]
>>> [sum(x) for x in zip(*lis)]
[6, 9, 12, 15, 18]
假设:
a = [1,2,3,4,5]
b = [2,3,4,5,6]
c = [3,4,5,6,7]
这样做:
[sum(n) for n in zip(*[a, b, c])]
使用numpy:
>>> seq = np.array([
... [1,2,3,4,5],
... [2,3,4,5,6],
... [3,4,5,6,7]])
>>> np.sum(seq,axis=0)
array([ 6, 9, 12, 15, 18])
怎么样:
a = [1,2,3,4,5]
b = [2,3,4,5,6]
c = [3,4,5,6,7]
s = map(sum, zip(a,b,c))
这也适用于各种长度的列表(仅嵌套 1 次)。
def sum_list_of_list_of_int(ll):
l=[]
for i in ll: # "i" type is list
for ii in range(len(i)): # "ii" type is int
if len(l)-1>=ii:
l[ii]+=int(i[ii])
else:
l.append(int(i[ii]))
return l