Bạn có thể kiểm tra xem hai từ điển có bằng Python không?

Hãy lấy ví dụ đầu tiên để so sánh đơn giản hai từ điển trong mã Spyder3 mà không sử dụng hàm assertDictEqual để hiểu khái niệm bình đẳng một cách đơn giản. Chúng tôi đã bắt đầu mã của mình với việc khởi tạo hai cấu trúc dữ liệu từ điển. Từ điển chứa 3 giá trị cặp khóa, i. e. , giống nhau về giá trị nhưng khác nhau về vị trí. Câu lệnh in sử dụng toán tử “==” để hiển thị kết quả so sánh của hai từ điển. Vì cả hai từ điển đều giống nhau nên kết quả là chúng phải trả về “True”

Dic1 = {'Một' . 46, 'Ba' . [2,14] . , 'Two': 14}

Dic1 = { . 'Two': 14, 'Một' . 46, 'Ba' . [2,14]}

print[Dic1 == Dic2]

Sau khi chạy đoạn mã đơn giản này, chúng ta có đầu ra là “true”, tôi. e. , từ điển đều bình đẳng

Ví dụ 02

Trước tiên chúng ta hãy xem việc sử dụng hàm assertEqual trên từ điển. Để sử dụng chức năng này, trước tiên chúng tôi đã nhập mô-đun "unittest" của python. Lớp “TestStringMethods” tích hợp sẵn được sử dụng khi triển khai mô-đun TestCase thông qua thư viện unittest. Chức năng “kiểm tra” do người dùng xác định được xác định. Nó chứa phần khởi tạo của hai từ điển, “Dic1” và “Dic2”, với các giá trị cặp khóa giống nhau. Hàm assertEqual được gọi ở đây, lấy từ điển Dic1 và Dic2 làm đối số để kiểm tra tính bằng nhau của từ điển. Nó sẽ trả về True nếu các từ điển bằng nhau;

nhập đơn vị
lớp TestStringMethods [unittest.Trường hợp thử nghiệm] .
    def test2 [self< . ]:
      Dic1 = {"Một": 1, "Hai" . 2}
      Dic2 = { . "One": 1, "Hai" . 2}
bản thân . assertEqual[ Dic1 , Dic2 . ]
if __name__ == '__main__':
đơn vị nhất . chính[]

Sau khi chạy đoạn mã python này, chúng tôi nhận được thông báo thành công, tôi. e. , "VÂNG. ” Điều đó có nghĩa là cả hai từ điển đều bằng nhau và giống nhau về giá trị, và trường hợp thử nghiệm được thông qua

Ví dụ 03

Đây là một ví dụ khác về việc sử dụng hàm assertDicEqual của python trong mã của chúng tôi. Bạn sẽ thấy rằng nó sẽ rất giống với phương thức assertEqual. Chúng tôi đã khai báo cùng một từ điển Dic1 và Dic2 trong mã như trong hình minh họa ở trên trong chức năng kiểm tra. Ngoài ra, chúng tôi đã khởi tạo một biến chuỗi khác, “m,” để sử dụng trong mã. Thay đổi duy nhất là hàm assertDictEqual được sử dụng ở đây có 3 đối số thay vì 2. Vì vậy, phương thức assertDictEqual sử dụng 3 biến, i. e. , v1, v2 và m. Các biến v1 và v2 sẽ được so sánh, trong khi biến “m” sẽ hiển thị sự thành công và thất bại của phép so sánh này

nhập đơn vị
lớp TestStringMethods [unittest.Trường hợp thử nghiệm] .
    def test2 [self< . ]:
      Dic1 = {"Một": 1, "Hai" . 2}
      Dic2 = { . "One": 1, "Hai" . 2}
        m = " . "
bản thân . assertDictEqual[ Dic1 , Dic2 . , m]
if __name__ == '__main__':
đơn vị nhất . chính[]

Vì các từ điển được khởi tạo trong mã giống nhau và bằng nhau; . e. , "VÂNG. ”

Hãy thay đổi mã một chút. Lần này, chúng tôi đã thay đổi các giá trị từ điển. Trong từ điển Dic2, chúng tôi đã cập nhật giá trị của khóa “Hai” i. e. thay thế nó bằng 45. Ngoài ra, chúng tôi đã cập nhật biến “m” i. e. vì từ điển bây giờ không bằng

nhập đơn vị
lớp TestStringMethods [unittest.Trường hợp thử nghiệm] .
    def test2 [self< . ]:
      Dic1 = {"Một": 1, "Hai" . 2}
      Dic2 = { . "One": 1, "Hai" . 45}
        m = " . "
bản thân . assertDictEqual[ Dic1 , Dic2 . , m]
if __name__ == '__main__':
đơn vị nhất . chính[]

Sau khi chạy mã kiểm tra này, chúng tôi đã nhận được đầu ra FAIL. Đây được gọi là đầu ra âm cho trường hợp thử nghiệm và do đó thử nghiệm đơn vị của chúng tôi không thành công, tôi. e. , từ điển không bằng nhau

Ví dụ 04

Chúng ta hãy xem ví dụ cuối cùng nhưng không phải là ít nhất của chúng tôi về việc sử dụng hàm assertDictEqual trong mã trường hợp kiểm tra python. Các tệp tiêu đề giống nhau, tôi. e. , unittest, đã được sử dụng. Cùng một lớp và hàm main[] được sử dụng trong mã. Mã python này sử dụng hai hàm do người dùng định nghĩa để kiểm tra hai trường hợp thử nghiệm, tôi. e. , kiểm tra1 và kiểm tra2. Đầu ra sẽ chỉ dương khi cả hai trường hợp thử nghiệm đều đúng. Bạn có thể thấy rằng cả hai chức năng đều chứa các từ điển cùng tên, tôi. e. , Dic1 và Dic2. Từ điển chức năng “test1” giống nhau, trong khi từ điển chức năng test2 không giống nhau, i. e. , thay đổi tại phím “Hai” trong Dic2. Biến “m” trong cả hai chức năng kiểm tra chứa các giá trị khác nhau

nhập đơn vị
lớp TestStringMethods [unittest.Trường hợp thử nghiệm] .
      def test1 [self< . ]:
      Dic1 = {"Một": 1, "Hai" . 2}
      Dic2 = { . "One": 1, "Hai" . 2}
        m = " . "
bản thân . assertDictEqual[ Dic1 , Dic2 . , m]
    def test2[self]:
      Dic1 = {"Một": 1, "Hai" . 2}
        Dic2 = { . "One": 1, "Hai" . 45}
        m = " . "
bản thân . assertDictEqual[ Dic1 , Dic2 . , m]
if __name__ == '__main__':
đơn vị nhất . chính[]

Khi thực thi mã này, chúng tôi đã nhận được kết quả âm tính

Hãy cập nhật mã bằng cách làm cho cả hai từ điển chức năng kiểm tra khác nhau một chút. e. Dic1 và Dic2 khác nhau

nhập đơn vị
lớp TestStringMethods [unittest.Trường hợp thử nghiệm] .
      def test1 [self< . ]:
      Dic1 = {"Một": 1, "Hai" . 2}
      Dic2 = { . "One": 1, "Hai" . 456}
        m = " . "
bản thân . assertDictEqual[ Dic1 , Dic2 . , m]
    def test2[self]:
      Dic1 = {"Một": 1, "Hai" . 2}
        Dic2 = { . "One": 1, "Hai" . 45}
        m = " . "
bản thân . assertDictEqual[ Dic1 , Dic2 . , m]
if __name__ == '__main__':
đơn vị nhất . chính[]

Bạn sẽ thấy đầu ra hiển thị hai lỗi

Bây giờ hãy làm cho các từ điển giống nhau và bằng nhau cho cả hai chức năng kiểm tra như bên dưới

nhập đơn vị
lớp TestStringMethods [unittest.Trường hợp thử nghiệm] .
      def test1 [self< . ]:
      Dic1 = {"Một": 1, "Hai" . 2}
      Dic2 = { . "One": 1, "Hai" . 2}
        m = " . "
bản thân . assertDictEqual[ Dic1 , Dic2 . , m]
    def test2[self]:
      Dic1 = {"Một": 1, "Hai" . 2}
        Dic2 = { . "One": 1, "Hai" . 2}
        m = " . "
bản thân . assertDictEqual[ Dic1 , Dic2 . , m]
if __name__ == '__main__':
đơn vị nhất . chính[]

Lần này, bạn sẽ nhận được thông báo thành công của các trường hợp thử nghiệm, tôi. e. , Kết quả tích cực

Phần kết luận

Chúng tôi đã triển khai phương thức assertDictEqual trong Python để so sánh các từ điển. Chúng ta cũng đã thấy một ví dụ đơn giản về hàm tương tự assertEqual[] để làm rõ hơn. Do đó, chúng tôi đã thực hiện nó khá đơn giản và dễ dàng để giúp bạn hiểu khái niệm về phương thức assertDictEqual

Chủ Đề