Tuple là tập hợp có thứ tự nhưng bất biến. Nếu có nhiều tuple cùng phần tử đầu, có thể cần cộng phần tử thứ hai của các tuple có phần tử đầu bằng nhau.
Dùng map và vòng lặp for
Chuyển list tuple thành dictionary để liên kết key-value. Duyệt cộng value cho mỗi key. Dùng map chuyển dictionary items về list tuple.
Ví dụ
List = [(3, 19), (7, 31), (7, 50), (1, 25.5), (1, 12)]
tup = {i: 0 for i, v in List}
for key, value in List:
tup[key] = tup[key] + value
result = list(map(tuple, tup.items()))
print(result)
Kết quả:
[(3, 19), (7, 81), (1, 37.5)]
Dùng collections.defaultdict
Tương tự nhưng dùng defaultdict(int) tự động khởi tạo 0. Truy cập dict.items() chuyển về list.
Ví dụ
from collections import defaultdict
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
print(list(dict.items()))
Kết quả:
[(3, 19), (7, 81), (1, 37.5)]