可变长度元素的和列表

2024-04-20 08:12:12 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我有一个列表列表,并且每个嵌套列表都包含数字,那么如何将所有这些列表元素逐个添加到单个数组中?在

listOne = [1, 2, 3]
listTwo = [4, 5, 6]
listThree = [7, 8, 9, 10]
allLists = [listOne, listTwo, listThree]

total = add(allLists)
print total

输出应为[12, 15, 18, 10]


Tags: add元素列表数字数组totalprintlisttwo
2条回答

这也是练习列表理解的好机会;)

maxlen = max(len(lst) for lst in allLists) # find length of longest list
sumlist = [sum([lst[i] if i<len(lst) else 0 for lst in allLists]) for i in range(maxlen)]

给出sumlist

[12,15,18,10]

使用^{}重新映射行/列(类似于zip,但映射到最长的元素而不是最短的元素),填充较短的项0

from itertools import izip_longest
total = [sum(x) for x in izip_longest(*allLists, fillvalue=0)]

输出:

^{pr2}$

同样为了您的启发,zip_longest的中间输出是:

[(1, 4, 7), (2, 5, 8), (3, 6, 9), (0, 0, 10)]

相关问题 更多 >