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)]
廣告