Python - 獲取具有相同第一個值的元組的和


元組是 Python 集合或陣列,有序但不可變。如果我們得到許多第一個元素相同的元組,則在需要對第一個元素相等的那些元組的第二個元素求和時,我們可能會遇到這種情況。

使用 map 和 for 迴圈

在此方法中,我們將首先考慮由元組組成的列表。然後將它們轉換為字典,以便我們可以將元組中的元素關聯為鍵值對。然後我們使用 for 迴圈,對字典中每個鍵的值求和。最後使用 map 函式,以獲取包含已求和的值的列表。

示例

 線上演示

List = [(3,19),(7, 31), (7, 50), (1, 25.5), (1, 12)]
# Converting it to a dictionary
tup = {i:0 for i, v in List}
for key, value in List:
   tup[key] = tup[key]+value
# using map
result = list(map(tuple, tup.items()))
print(result)

執行以上程式碼會得到以下結果

輸出

[(3, 19), (7, 81), (1, 37.5)]

使用集合

這裡我們採用與上面類似的方法,但使用 collections 模組的 defaultdict 方法。現在我們訪問字典項並將其轉換為一個列表,而不是使用 map 函式。

示例

 線上演示

from collections import defaultdict
# list of tuple
List = [(3,19),(7, 31), (7, 50), (1, 25.5), (1, 12)]
dict = defaultdict(int)
for key, value in List:
   dict[key] = dict[key]+value
# Printing output
print(list(dict.items()))

執行以上程式碼會得到以下結果

輸出

[(3, 19), (7, 81), (1, 37.5)]

更新於: 2019 年 12 月 23 日

389 次瀏覽

職業開始你的

完成課程以獲得認證

開始
廣告