Computer >> Máy Tính >  >> Lập trình >> Python

Python - Lọc khóa từ điển dựa trên các 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 ra một số khóa nhất định của từ điển dựa trên các tiêu chí nhất định. Trong bài viết này, chúng ta sẽ xem cách lọc ra các khóa từ từ điển Python.

Với cho và trong

Trong cách tiếp cận này, chúng tôi đặt các giá trị của các khóa sẽ được lọc trong 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. Chúng tôi tạo một từ điển kết quả có 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("Given Dictionary:\n",dictA)
print("Keys for filter:\n",key_list)
res = [dictA[i] for i in key_list if i in dictA]

print("Dictionary with filtered keys:\n",res)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Given Dictionary:
   {'Mon': 'Phy', 'Tue': 'chem', 'Wed': 'Math', 'Thu': 'Bio'}
Keys for filter:
   ['Tue', 'Thu']
Dictionary with filtered keys:
   ['chem', 'Bio']

Với giao lộ

Chúng tôi sử dụng giao điểm để tìm các yếu tố chung giữa từ điển đã cho và danh sách. Sau đó, áp dụng hàm set để lấy các phần tử riêng biệt và chuyển đổi kết quả thành một danh sách.

Ví dụ

dictA= {'Mon':'Phy','Tue':'chem','Wed':'Math','Thu':'Bio'}
key_list = ['Tue','Thu']

print("Given Dictionary:\n",dictA)
print("Keys for filter:\n",key_list)

temp = list(set(key_list).intersection(dictA))

res = [dictA[i] for i in temp]

print("Dictionary with filtered keys:\n",res)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Given Dictionary:
   {'Mon': 'Phy', 'Tue': 'chem', 'Wed': 'Math', 'Thu': 'Bio'}
Keys for filter:
   ['Tue', 'Thu']
Dictionary with filtered keys:
   ['chem', 'Bio']