Hai từ điển Python có thể chứa một số khóa chung. Trong bài viết này, chúng ta sẽ tìm hiểu cách lấy sự khác biệt về các khóa có mặt trong hai từ điển cho trước.
Sử dụng set
Ở đây, chúng ta lấy hai từ điển và áp dụng hàm set cho chúng. Sau đó trừ hai tập hợp để lấy sự khác biệt. Chúng ta thực hiện cả hai chiều: trừ từ điển thứ hai từ từ điển thứ nhất, rồi trừ từ điển thứ nhất từ từ điển thứ hai. Các khóa không chung sẽ được liệt kê trong tập hợp kết quả.
Ví dụ
dictA = {'1': 'Mon', '2': 'Tue', '3': 'Wed'}
print("Từ điển thứ nhất:\n", dictA)
dictB = {'3': 'Wed', '4': 'Thu', '5': 'Fri'}
print("Từ điển thứ hai:\n", dictB)
res1 = set(dictA) - set(dictB)
res2 = set(dictB) - set(dictA)
print("\nSự khác biệt về khóa giữa hai từ điển:")
print(res1, res2)
Kết quả
Chạy đoạn mã trên cho kết quả sau:
Từ điển thứ nhất: {'1': 'Mon', '2': 'Tue', '3': 'Wed'}
Từ điển thứ hai: {'3': 'Wed', '4': 'Thu', '5': 'Fri'}
Sự khác biệt về khóa giữa hai từ điển: {'2', '1'} {'4', '5'}
Sử dụng in với vòng lặp for
Cách tiếp cận khác là sử dụng vòng lặp for để duyệt qua các khóa của một từ điển và kiểm tra sự hiện diện của chúng trong từ điển còn lại bằng toán tử in.
Ví dụ
dictA = {'1': 'Mon', '2': 'Tue', '3': 'Wed'}
print("Từ điển thứ nhất:\n", dictA)
dictB = {'3': 'Wed', '4': 'Thu', '5': 'Fri'}
print("Từ điển thứ hai:\n", dictB)
print("\nCác khóa có trong từ điển thứ nhất nhưng không có trong từ điển thứ hai:")
for key in dictA.keys():
if key not in dictB:
print(key)
Kết quả
Chạy đoạn mã trên cho kết quả sau:
Từ điển thứ nhất: {'1': 'Mon', '2': 'Tue', '3': 'Wed'}
Từ điển thứ hai: {'3': 'Wed', '4': 'Thu', '5': 'Fri'}
Các khóa có trong từ điển thứ nhất nhưng không có trong từ điển thứ hai:
1
2