Trong hướng dẫn này, ta viết chương trình cộng tất cả giá trị với cùng key từ các list khác nhau. Xem ví dụ để hiểu rõ.
Đầu vào
list_one = [('a', 2), ('b', 3), ('c', 5)]
list_two = [('c', 7), ('a', 4), ('b', 2)] Đầu ra
[('a', 6), ('b', 5), ('c', 12)] Làm theo các bước sau để giải quyết.
- Khởi tạo các list.
- Chuyển list đầu thành dictionary dùng dict lưu vào biến.
- Lặp qua list thứ hai và cộng giá trị tương ứng vào key có trong dictionary.
- In kết quả.
Ví dụ
# Khởi tạo list
list_one = [('a', 2), ('b', 3), ('c', 5)]
list_two = [('c', 7), ('a', 4), ('b', 2)]
# Chuyển list_one thành dict
result = dict(list_one)
# Lặp qua list thứ hai
for tup in list_two:
# Kiểm tra key trong dict
if tup[0] in result:
result[tup[0]] = result.get(tup[0]) + tup[1]
# In kết quả dạng list tuple
print(list(result.items())) Kết quả
Nếu chạy mã trên, bạn sẽ nhận được kết quả sau.
[('a', 6), ('b', 5), ('c', 12)] Ta giải quyết vấn đề trên không lặp qua list nào dùng Counter từ collections. Xem nó.
Ví dụ
# Import Counter từ collections
from collections import Counter
# Khởi tạo list
list_one = [('a', 2), ('b', 3), ('c', 5)]
list_two = [('c', 7), ('a', 4), ('b', 2)]
# Lấy kết quả
result = Counter(dict(list_one)) + Counter(dict(list_two))
# In kết quả dạng list tuple
print(list(result.items())) Kết quả
Nếu chạy mã trên, bạn sẽ nhận được kết quả sau.
[('a', 6), ('b', 5), ('c', 12)] Kết luận
Nếu có thắc mắc về hướng dẫn, hãy đề cập ở phần bình luận.