簡體   English   中英

對元組列表的重復元素求和

[英]Summing repeated elements of list of tuples

假設我有一個元組列表,例如

[('a', 1), ('a', 1), ('a', 1), ('b', 2), ('e', 3), ('e', 3), ('g', 4), ('b', 1)]

我怎樣才能得到一個像這樣的元組列表

[('a', 3), ('b', 3), ('e', 6), ('g', 4)]

其中重復元素具有逗號求和后的值,並且該求和值放置在新元組列表中現在唯一元素之后。

您可以使用字典和dict.get(letter, 0)對每個字母的值求和,然后將 output dict作為元組列表。

data = [('a', 1), ('a', 1), ('a', 1), ('b', 2), ('e', 3), ('e', 3), ('g', 4), ('b', 1)]

def combine(data):
    output = {}
    for letter, number in data:
        output[letter] = output.get(letter, 0) + number
    return list(output.items())

print(combine(data))
#[('a', 3), ('b', 3), ('e', 6), ('g', 4)]

暫無
暫無

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

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