Khi cần lọc các dictionary trong danh sách dựa trên giá trị tại một khóa cụ thể có nằm trong tập giá trị cho trước hay không, ta dùng vòng lặp và điều kiện in.
Ví dụ
Minh họa:
my_list = [{"Python": 2, "is": 4, "cool": 11}, {"Python": 5, "is": 1, "cool": 1}, {"Python": 7, "is": 3, "cool": 7}, {"Python": 9, "is": 9, "cool": 8}, {"Python": 4, "is": 10, "cool": 6}]
print("Danh sách ban đầu:")
print(my_list)
search_list = [1, 9, 8, 4, 5]
key = "is"
my_result = []
for sub in my_list:
if sub[key] in search_list:
my_result.append(sub)
print("Kết quả lọc:")
print(my_result)
Kết quả
Danh sách ban đầu: [{'Python': 2, 'is': 4, 'cool': 11}, {'Python': 5, 'is': 1, 'cool': 1}, {'Python': 7, 'is': 3, 'cool': 7}, {'Python': 9, 'is': 9, 'cool': 8}, {'Python': 4, 'is': 10, 'cool': 6}]
Kết quả lọc: [{'Python': 2, 'is': 4, 'cool': 11}, {'Python': 5, 'is': 1, 'cool': 1}, {'Python': 9, 'is': 9, 'cool': 8}]
Giải thích
- Danh sách dictionary, danh sách giá trị tìm kiếm, khóa cần kiểm tra.
- Khởi tạo list rỗng kết quả.
- Duyệt từng dict, nếu
sub[key] in search_listthì append. - In kết quả.