Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python – Ánh xạ chéo (Cross mapping) hai danh sách giá trị dictionary

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.