Thực hiện ánh xạ chéo giữa hai dictionary có giá trị là danh sách. Sử dụng setdefault() và extend().
Mã nguồn
my_dict_1 = {"Python": [4, 7], "Fun": [8, 6]}
my_dict_2 = {6: [5, 7], 8: [3, 6], 7: [9, 8]}
print("Dictionary 1:", my_dict_1)
print("Dictionary 2:", my_dict_2)
my_result = {}
for key, value in my_dict_1.items():
for index in value:
my_result.setdefault(key, []).extend(my_dict_2.get(index, []))
print("Kết quả ánh xạ chéo:", my_result)
Kết quả
Dictionary 1: {'Python': [4, 7], 'Fun': [8, 6]}
Dictionary 2: {6: [5, 7], 8: [3, 6], 7: [9, 8]}
Kết quả ánh xạ chéo: {'Python': [9, 8], 'Fun': [3, 6, 5, 7]}
Giải thích
- Duyệt qua
my_dict_1: key="Python", value=[4,7]; key="Fun", value=[8,6]. - Với "Python": index=4 (không có trong dict_2) → list rỗng; index=7 → dict_2[7]=[9,8] → extend → [9,8].
- Với "Fun": index=8 → dict_2[8]=[3,6]; index=6 → dict_2[6]=[5,7] → extend → [3,6,5,7].
setdefault(key, [])đảm bảo key tồn tại với list rỗng trước khi extend.get(index, [])trả về list rỗng nếu key không tồn tại trong dict_2.
Đây là kỹ thuật "join" dữ liệu giữa hai dictionary dựa trên giá trị trung gian.