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

Python - Lọc khóa từ điển dựa trên giá trị trong danh sách chọn lọc


Đôi khi trong từ điển Python chúng ta có thể cần lọc bỏ một số khóa dựa trên tiêu chí nhất định. Trong bài này chúng ta sẽ xem cách lọc khóa từ từ điển Python.

Với for và in

Trong cách này chúng ta đặt giá trị của các khóa cần lọc vào một danh sách. Sau đó lặp qua từng phần tử của danh sách và kiểm tra sự hiện diện của nó trong từ điển cho trước. Chúng ta tạo một từ điển kết quả chứa các giá trị này được tìm thấy trong từ điển.

Ví dụ

dictA = {'Mon':'Phy','Tue':'chem','Wed':'Math','Thu':'Bio'}
key_list = ['Tue','Thu']
print("Từ điển cho trước:\n", dictA)
print("Khóa để lọc:\n", key_list)
res = [dictA[i] for i in key_list if i in dictA]
print("Từ điển với khóa đã lọc:\n", res)

Đầu ra

Từ điển cho trước:    {'Mon': 'Phy', 'Tue': 'chem', 'Wed': 'Math', 'Thu': 'Bio'}
Khóa để lọc:    ['Tue', 'Thu']
Từ điển với khóa đã lọc:    ['chem', 'Bio']

Với intersection

Chúng ta dùng intersection để tìm phần tử chung giữa từ điển cho trước và danh sách. Sau đó áp dụng hàm set để lấy các phần tử distinct và chuyển kết quả sang list.

Ví dụ

dictA = {'Mon':'Phy','Tue':'chem','Wed':'Math','Thu':'Bio'}
key_list = ['Tue','Thu']
print("Từ điển cho trước:\n", dictA)
print("Khóa để lọc:\n", key_list)
temp = list(set(key_list).intersection(dictA))
res = [dictA[i] for i in temp]
print("Từ điển với khóa đã lọc:\n", res)

Đầu ra

Từ điển cho trước:    {'Mon': 'Phy', 'Tue': 'chem', 'Wed': 'Math', 'Thu': 'Bio'}
Khóa để lọc:    ['Tue', 'Thu']
Từ điển với khóa đã lọc:    ['chem', 'Bio']