2024-04-20 08:12:12 发布
网友
如果我有一个列表列表,并且每个嵌套列表都包含数字,那么如何将所有这些列表元素逐个添加到单个数组中?在
即
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]
[12, 15, 18, 10]
这也是练习列表理解的好机会;)
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
sumlist
[12,15,18,10]
使用^{}重新映射行/列(类似于zip,但映射到最长的元素而不是最短的元素),填充较短的项0
zip
from itertools import izip_longest total = [sum(x) for x in izip_longest(*allLists, fillvalue=0)]
输出:
同样为了您的启发,zip_longest的中间输出是:
[(1, 4, 7), (2, 5, 8), (3, 6, 9), (0, 0, 10)]
这也是练习列表理解的好机会;)
给出
sumlist
[12,15,18,10]
使用^{} 重新映射行/列(类似于
zip
,但映射到最长的元素而不是最短的元素),填充较短的项0输出:
^{pr2}$同样为了您的启发,zip_longest的中间输出是:
相关问题 更多 >
编程相关推荐