Khi cần cập nhật list tuple bằng list khác, có thể dùng 'defaultdict'.
Defaultdict là container tương tự dictionary trong module 'collections'. Là sub-class của 'dict'. Trả về đối tượng giống dictionary. 'defaultdict' không bao giờ raise KeyError. Cung cấp giá trị mặc định cho key không tồn tại.
Minh họa:
Ví dụ
from collections import defaultdict
def merge_vals(list_1, list_2):
my_dict = defaultdict(list)
for i, j in list_1 + list_2:
my_dict[i].append(j)
return sorted([(i, max(j)) for i, j in my_dict.items()], key=lambda x: x[0])
my_list_1 = [('v', 1), ('q', 2), ('o', 0)]
my_list_2 = [('q', 5), ('o', 3)]
print("List tuple đầu tiên: ")
print(my_list_1)
print("List tuple thứ hai: ")
print(my_list_2)
print("Sau khi gộp, trở thành: ")
print(merge_vals(my_list_1, my_list_2))
Đầu ra
List tuple đầu tiên:
[('v', 1), ('q', 2), ('o', 0)]
List tuple thứ hai:
[('q', 5), ('o', 3)]
Sau khi gộp, trở thành:
[('o', 3), ('q', 5), ('v', 1)]
Giải thích
- Nhập thư viện cần thiết.
- Định nghĩa phương thức 'merge_vals' nhận hai list làm tham số. Tạo defaultdict.
- Duyệt các phần tử trong list, lấy phần tử list đầu làm index, phần tử list hai append vào dictionary.
- Sắp xếp dictionary và trả về.
- Tạo hai list tuple, hiển thị.
- Gọi 'merge_vals' với hai list tuple.
- Hiển thị kết quả.