So sánh dict Python
Cách dễ nhất để so sánh các từ điển Python chỉ đơn giản là sử dụng cùng một toán tử đẳng thức mà bạn sử dụng trên các loại Python khác, “==”. Điều này hoạt động tốt trong hầu hết các trường hợp, nhưng nó phụ thuộc vào hành vi của “==” đối với các giá trị liên quan. Nếu bạn cần một bài kiểm tra nghiêm ngặt hơn, điều này có thể được thực hiện trong một vài dòng mã Show
Python nhất quánHai trong số những lợi ích của Python là dễ sử dụng và nhất quán. Ví dụ, nó khác với Java, nơi so sánh chuỗi so sánh các tham chiếu đối tượng và bạn phải sử dụng phương thức “bằng” để thực hiện so sánh chuỗi mà bạn muốn thực hiện. Ngược lại, trong Python, phần lớn bạn có thể dựa vào 3 để làm điều đúng trong hầu hết thời gianHãy xem xét đoạn mã sau
đầu ra Quảng cáo
Tất nhiên, điều này cũng hiệu quả đối với các trường hợp tiêu cực, như bạn mong đợi. 4 trả lại 5So sánh từ điển với các loại khácPython không chỉ phù hợp với các loại đơn giản, nó cũng thực hiện kiểm tra bình đẳng hợp lý cho các loại phức tạp hơn. Hãy xem điều này cho từ điển
đầu ra
Vì những gì đang được kiểm tra có lẽ ít rõ ràng hơn một chút so với các loại đơn giản, hãy thử thay đổi các yếu tố khác nhau Quảng cáo
đầu ra ________số 8Ba trường hợp đầu tiên là khá nhiều những gì chúng ta mong đợi. Cái cuối cùng cần một số giải thích Thận trọng với các loại tương thích bình đẳngĐiều đang xảy ra trong trường hợp cuối cùng là chúng ta đang so sánh một 6 (một số nguyên) với 7 (một giá trị dấu phẩy động). Đằng sau hậu trường, giá trị số nguyên chuyển đổi thành số float, hai số float được so sánh và phép so sánh trả về true. Điều này không liên quan gì đến từ điển - nó chỉ là một thuộc tính của các giá trị được so sánh. theo cùng một cáchQuảng cáo 1đầu ra
Điều gì xảy ra nếu chúng ta cần kiểm tra bình đẳng mạnh mẽ hơn?Nếu chúng ta cần kiểm tra xem các từ điển có bằng nhau không và các loại của tất cả các giá trị có bằng nhau hay không, điều đó tương đối đơn giản trong Python. Đây là một phiên bản của một phương pháp sẽ hoạt động 3Để kiểm tra điều này, chúng ta có thể chạy lại các trường hợp ban đầu của mình, lần này sử dụng hàm thay vì 3. Chúng tôi cũng sẽ kiểm tra thêm một lần nữa các từ điển mà chúng tôi biết là giống nhau để đảm bảo trường hợp đó hoạt động 5đầu ra 0Sử dụng “==” cho các Bộ sưu tập Python khácNhư chúng ta đã thấy, cách xử lý bình đẳng của Python đối với từ điển nhất quán với cách xử lý bình đẳng của nó đối với các loại đơn giản như số và chuỗi Tính nhất quán này cũng mở rộng cho các loại và bộ sưu tập được soạn sẵn khác, cũng như các bộ sưu tập được xác định trong các mô-đun thư viện chuẩn của Python. Ví dụ: ở đây chúng tôi chứng minh rằng nó hoạt động đối với danh sách, bộ, bộ và mảng Quảng cáo 1Đầu ra là như chúng ta mong đợi 2Điều gì về các loại do người dùng xác định?Chủ đề này nâng cao hơn một chút so với những gì chúng ta đang thảo luận, nhưng tôi muốn đưa nó vào cho những độc giả có thể đang tự hỏi: “Làm thế nào đạt được sự nhất quán như vậy? . ” Mặc dù bạn có thể không cần nó cho các trường hợp đơn giản, nhưng cũng có thể định nghĩa các phương thức trên các lớp do người dùng định nghĩa sẽ cho phép người tiêu dùng thuộc lớp của bạn sử dụng các toán tử so sánh tiêu chuẩn ( 3, 0, 1, 2, 3, 4, v.v. ). Điều này không được thực hiện trực tiếp thông qua nạp chồng toán tử, như trong C++. Thay vào đó, Python cho phép điều này thông qua các phương thức đặc biệt như 5, 6, 7, v.v. Chúng được gọi là "phương pháp ma thuật" hoặc đôi khi là phương pháp "dunder" (dunder xuất phát từ "dấu gạch dưới kép" ở đầu và cuối mỗi phương thức)Những phương pháp kỳ diệu như vậy có mặt khắp nơi trong Python và tạo thành một phần quan trọng trong cuốn sách Fluent Python gọi là “mô hình dữ liệu Python”. Trong trường hợp những gì chúng ta đang thảo luận bây giờ, các toán tử so sánh khác nhau, mô-đun 8 của Python chứa một lối tắt hữu ích giúp bạn không phải triển khai từng phương thức này một cách riêng lẻ. Có thể chỉ cần xác định hai phương thức như vậy và phần còn lại được triển khai tự động, sử dụng @functools. trang trí total_ordering. Tài liệu Python cho trình trang trí đó chứa một ví dụ hữu ích mà bạn có thể sử dụng làm điểm bắt đầu cho các lớp của riêng mình
Làm cách nào để so sánh 2 dict trong Python?Sử dụng toán tử == để so sánh hai từ điển
.
Có == cho dict trong Python không?Theo tài liệu python, bạn thực sự có thể sử dụng toán tử == trên từ điển .
Làm cách nào để so sánh 2 danh sách trong Python?Chúng ta có thể kết hợp phương thức sort() của Python với toán tử == để so sánh hai danh sách. Phương thức sort() trong Python được sử dụng để sắp xếp danh sách đầu vào với mục đích nếu hai danh sách đầu vào bằng nhau thì các phần tử sẽ nằm ở cùng vị trí chỉ mục.
Làm cách nào để kiểm tra xem dict có chứa khóa Python không?Kiểm tra xem khóa có tồn tại hay không bằng cách sử dụng has_key()
. |