Tôi muốn khẳng định rằng hai từ điển Python đều bằng nhau (nghĩa là: số lượng khóa bằng nhau và mỗi ánh xạ từ khóa đến giá trị bằng nhau; thứ tự không quan trọng). Tuy nhiên, cách đơn giản là assert A==B
, điều này không hoạt động nếu các giá trị của từ điển là numpy arrays
. Làm thế nào tôi có thể viết một hàm để kiểm tra chung nếu hai từ điển bằng nhau?So sánh hai từ điển với các ma trận cứng nhắc như các giá trị
>>> import numpy as np
>>> A = {1: np.identity(5)}
>>> B = {1: np.identity(5) + np.ones([5,5])}
>>> A == B
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
EDIT Tôi biết rằng ma trận NumPy sẽ được kiểm tra bình đẳng với .all()
. Những gì tôi đang tìm kiếm là một cách tổng quát để kiểm tra điều này, mà không cần phải kiểm tra isinstance(np.ndarray)
. Điều này có khả thi không?
chủ đề liên quan mà không cần mảng NumPy:
Tôi nghĩ rằng bạn đang phải làm 'A [1] .all() == B [1] .all()' – EdChum