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

Python – Loại bỏ từ điển có giá trị trùng khớp


Khi cần loại bỏ các từ điển trong danh sách mà có giá trị tại khóa K trùng với giá trị của khóa K trong danh sách từ điển khác, ta dùng dictionary comprehension (set comprehension) và list comprehension.

Ví dụ

my_dict_1 = [{'Hi': 32, "there": 32, "Will": 19}, {'Hi': 19, "there": 100, "Will": 13}, {'Hi': 72, "there": 19, "Will": 72}]
print("Danh sách từ điển đầu tiên:")
print(my_dict_1)
my_dict_2 = [{'Hi': 72, "Will": 19}, {"Will": 13, "Hi": 19}]
print("Danh sách từ điển thứ hai:")
print(my_dict_2)
K = "Hi"
print("Giá trị khóa K:")
print(K)
temp = {element[K] for element in my_dict_2}
my_result = [element for element in my_dict_1 if element[K] not in temp]
print("Kết quả:")
print(my_result)

Kết quả

Danh sách từ điển đầu tiên: [{'Hi': 32, 'there': 32, 'Will': 19}, {'Hi': 19, 'there': 100, 'Will': 13}, {'Hi': 72, 'there': 19, 'Will': 72}]
Danh sách từ điển thứ hai: [{'Hi': 72, 'Will': 19}, {'Will': 13, 'Hi': 19}]
Giá trị khóa K: Hi
Kết quả: [{'Hi': 32, 'there': 32, 'Will': 19}]

Giải thích

  • Hai danh sách từ điển.

  • Khóa K = "Hi".

  • Tạo tập hợp temp chứa các giá trị của khóa K từ dict_2: {72, 19}.

  • Lọc dict_1: giữ từ điển nếu giá trị K của nó không nằm trong temp.

  • Chỉ từ điển đầu tiên (Hi=32) thỏa mãn.