簡體   English   中英

Python:將清單加在一起

[英]Python: Add lists together

考慮到這些列表具有相同的i[0]值,我正在嘗試將k個列表的最后四個元素加在一起。

lst = [[1,1,1],[2,1,2],[2,2,1],[3,4,1],[3,4,5],[3,1,0]]

Output = [[1,1,1],[2,3,3],[3,9,6]]

我知道我應該使用:

from operator import add
map(add, list1, list2, ..., listk)

我的問題是,是否可能存在具有相同i[0]值的k列表,所以我不確定如何合並此元素。 有一種有效的方法可以做到這一點嗎?

使用itertools.groupby()

from itertools import groupby
from operator import itemgetter

[[k] + [sum(col) for col in zip(*g)[1:]] for k, g in groupby(lst, itemgetter(0))]

zip(*iterable)調用使我們能夠對每列的組值求和; [1:]切片可讓我們忽略第一列。

演示:

>>> from itertools import groupby
>>> from operator import itemgetter
>>> lst = [[1, 1, 1], [2, 1, 2], [2, 2, 1], [3, 4, 1], [3, 4, 5], [3, 1, 0]]
>>> [[k] + [sum(col) for col in zip(*g)[1:]] for k, g in groupby(lst, itemgetter(0))]
[[1, 1, 1], [2, 3, 3], [3, 9, 6]]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM