Python dict so sánh trực tuyến
Trong bài đăng này, chúng tôi xem xét cách so sánh hai danh sách từ điển trong Python và cũng in ra sự khác biệt giữa hai danh sách Show
Phương pháp so sánh so sánh các khóa và giá trị trong từ điển Ngoài ra, thứ tự của các phần tử không quan trọng khi so sánh hai danh sách từ điển trong Python So sánh danh sách từ điển trong Python
Trong đoạn mã trên, The common keys are : {'x', 'y'}5 và The common keys are : {'x', 'y'}6 bằng nhau. Nghĩa là, mỗi từ điển chứa các mục giống nhau (khóa và giá trị) trong cả hai danh sách. Thứ tự của các phần tử trong mỗi từ điển là không liên quan Trong hướng dẫn này, chúng ta có hai từ điển và muốn tìm ra điểm chung của chúng (chẳng hạn như cùng khóa, cùng giá trị, v.v. ). Về cơ bản có một số điểm tương đồng giữa hai cuốn từ điển và bạn phải tìm ra những điểm tương đồng này thì bài viết này là hữu ích nhất. VẬY, hãy bắt đầu học cách so sánh hai từ điển trong Python và tìm điểm tương đồng giữa chúng Điểm tương đồng giữa các từ điển trong PythonVề cơ bản Từ điển là ánh xạ giữa một bộ khóa và giá trị. Các phím hỗ trợ các hoạt động cơ bản như hợp nhất, giao điểm và khác biệt. Khi chúng ta gọi phương thức items() trong từ điển thì nó chỉ trả về cặp (key, value) Bây giờ, hãy xem xét hai từ điển a = { 'x' : 1, 'y' : 2, 'z' : 3 } b = { 'w' : 10, 'x' : 11, 'y' : 2 } Tìm khóa chung của hai từ điển trong PythonỞ đây, chúng tôi viết một đoạn mã tìm các khóa phổ biến trong hai từ điển như a = { 'x' : 1, 'y' : 2, 'z' : 3 } b = { 'w' : 10, 'x' : 11, 'y' : 2 } common_keys = a.keys() & b.keys() # intersection operation on keys print("The common keys are :",common_keys) đầu ra The common keys are : {'x', 'y'} Tìm các khóa trong từ điển A không có trong từ điển BBây giờ, chúng tôi đang tìm các khóa có trong từ điển a và không có trong từ điển b như A = { 'x' : 1, 'y' : 2, 'z' : 3 } B = { 'w' : 10, 'x' : 11, 'y' : 2 } diffrent_keys = A.keys() - B.keys() print("The key that are in A and not in B are :",diffrent_keys) đầu ra The key that are in A and not in B are : {'z'} Tìm các cặp (khóa, giá trị) phổ biến trong từ điển bằng PythonBây giờ, chúng tôi thực hiện một thao tác mà chúng tôi đang tìm cặp (khóa, giá trị) phổ biến trong cả hai từ điển như Tải URL bên ngoài Python trong URL trình duyệt như thế này https. // làm đẹp mã. org/python-formatter-beautifier?url=external-url Tải dữ liệu Python trong đầu vào URL của trình duyệt như thế này https. // làm đẹp mã. org/python-formatter-beautifier?input=inputdata 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ã quảng cáoPython 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
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ả về 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 a = { 'x' : 1, 'y' : 2, 'z' : 3 } b = { 'w' : 10, 'x' : 11, 'y' : 2 }1 đầu ra a = { 'x' : 1, 'y' : 2, 'z' : 3 } b = { 'w' : 10, 'x' : 11, 'y' : 2 }2 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áoa = { 'x' : 1, 'y' : 2, 'z' : 3 } b = { 'w' : 10, 'x' : 11, 'y' : 2 }3 đầu ra a = { 'x' : 1, 'y' : 2, 'z' : 3 } b = { 'w' : 10, 'x' : 11, 'y' : 2 }4 Ba 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áoa = { 'x' : 1, 'y' : 2, 'z' : 3 } b = { 'w' : 10, 'x' : 11, 'y' : 2 }7 đầu ra a = { 'x' : 1, 'y' : 2, 'z' : 3 } b = { 'w' : 10, 'x' : 11, 'y' : 2 }2 Đ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 a = { 'x' : 1, 'y' : 2, 'z' : 3 } b = { 'w' : 10, 'x' : 11, 'y' : 2 }9 Để 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 độnga = { 'x' : 1, 'y' : 2, 'z' : 3 } b = { 'w' : 10, 'x' : 11, 'y' : 2 } common_keys = a.keys() & b.keys() # intersection operation on keys print("The common keys are :",common_keys)1 đầ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, a = { 'x' : 1, 'y' : 2, 'z' : 3 } b = { 'w' : 10, 'x' : 11, 'y' : 2 }10, a = { 'x' : 1, 'y' : 2, 'z' : 3 } b = { 'w' : 10, 'x' : 11, 'y' : 2 }11, a = { 'x' : 1, 'y' : 2, 'z' : 3 } b = { 'w' : 10, 'x' : 11, 'y' : 2 }12, a = { 'x' : 1, 'y' : 2, 'z' : 3 } b = { 'w' : 10, 'x' : 11, 'y' : 2 }13, a = { 'x' : 1, 'y' : 2, 'z' : 3 } b = { 'w' : 10, 'x' : 11, 'y' : 2 }14, 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ư a = { 'x' : 1, 'y' : 2, 'z' : 3 } b = { 'w' : 10, 'x' : 11, 'y' : 2 }15, a = { 'x' : 1, 'y' : 2, 'z' : 3 } b = { 'w' : 10, 'x' : 11, 'y' : 2 }16, a = { 'x' : 1, 'y' : 2, 'z' : 3 } b = { 'w' : 10, 'x' : 11, 'y' : 2 }17, 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 a = { 'x' : 1, 'y' : 2, 'z' : 3 } b = { 'w' : 10, 'x' : 11, 'y' : 2 }18 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 thực hiện tự động, sử dụng trình trang trí. 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
.
Làm cách nào để kiểm tra xem hai từ điển có cùng khóa và giá trị không?Để kiểm tra xem hai từ điển có cùng khóa không. . Sử dụng chính tả. keys() để so sánh các khóa của từ điển Nếu so sánh đẳng thức trả về True , từ điển có cùng khóa 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()
.
Làm cách nào để lặp qua từ điển trong Python?Có nhiều cách để lặp lại một từ điển trong Python. . Khóa truy cập bằng cách sử dụng bản dựng. phím() Phím truy cập mà không cần sử dụng phím() Lặp lại tất cả các giá trị bằng cách sử dụng. giá trị() Lặp lại tất cả các cặp khóa và giá trị bằng cách sử dụng items() Truy cập cả khóa và giá trị mà không cần sử dụng items() In các mục trong Khóa-Giá trị theo cặp |