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

Kiểm tra nhiều khóa có tồn tại trong từ điển Python


Trong phân tích dữ liệu bằng Python, chúng ta có thể cần xác thực xem một vài giá trị có tồn tại dưới dạng khóa trong từ điển hay không. Phần tiếp theo của phân tích chỉ sử dụng các khóa thuộc tập giá trị cho trước. Bài viết này trình bày cách thực hiện.

Sử dụng toán tử so sánh

Các giá trị cần kiểm tra được đưa vào một tập hợp (set). Sau đó nội dung của tập hợp được so sánh với tập hợp các khóa của từ điển. Ký hiệu >= cho biết tất cả các khóa từ từ điển đều hiện diện trong tập giá trị cho trước.

Ví dụ

Adict = {"Mon":3, "Tue":11,"Wed":6,"Thu":9} check_keys={"Tue","Thu"} # Sử dụng so sánh if(Adict.keys()) >= check_keys:    print("Tất cả khóa đều hiện diện") else:    print("Tất cả khóa không hiện diện") # Kiểm tra khóa mới check_keys={"Mon","Fri"} if(Adict.keys()) >= check_keys:    print("Tất cả khóa đều hiện diện") else:    print("Tất cả khóa không hiện diện")

Kết quả

Chạy mã trên cho kết quả sau −

Tất cả khóa đều hiện diện Tất cả khóa không hiện diện

Sử dụng all

Trong cách này, ta dùng vòng lặp for để kiểm tra từng giá trị có hiện diện trong từ điển. Hàm all chỉ trả về true nếu tất cả giá trị từ tập khóa kiểm tra đều có trong từ điển cho trước.

Ví dụ

Adict = {"Mon":3, "Tue":11,"Wed":6,"Thu":9} check_keys={"Tue","Thu"} # Sử dụng all if all(key in Adict for key in check_keys):    print("Tất cả khóa đều hiện diện") else:    print("Tất cả khóa không hiện diện") # Kiểm tra khóa mới check_keys={"Mon","Fri"} if all(key in Adict for key in check_keys):    print("Tất cả khóa đều hiện diện") else:    print("Tất cả khóa không hiện diện")

Kết quả

Chạy mã trên cho kết quả sau −

Tất cả khóa đều hiện diện Tất cả khóa không hiện diện

Sử dụng subset

Trong cách này, ta lấy các giá trị cần tìm kiếm làm một tập hợp và xác thực xem nó có phải là tập con của các khóa từ từ điển hay không. Ta dùng hàm issubset.

Ví dụ

Adict = {"Mon":3, "Tue":11,"Wed":6,"Thu":9} check_keys=set(["Tue","Thu"]) # Sử dụng all if (check_keys.issubset(Adict.keys())):    print("Tất cả khóa đều hiện diện") else:    print("Tất cả khóa không hiện diện") # Kiểm tra khóa mới check_keys=set(["Mon","Fri"]) if (check_keys.issubset(Adict.keys())):    print("Tất cả khóa đều hiện diện") else:    print("Tất cả khóa không hiện diện")

Kết quả

Chạy mã trên cho kết quả sau −

Tất cả khóa đều hiện diện Tất cả khóa không hiện diện