I want to assert that two Python dictionaries are equal (that means: equal amount of keys, and each mapping from key to value is equal; order is not important). A simple way would be assert A==B
, however, this does not work if the values of the dictionaries are numpy arrays
. How can I write a function to check in general if two dictionaries are equal?
>>> 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 I am aware that numpy matrices shall be checked for equality with .all()
. What I am looking for is a general way to check for this, without having to check isinstance(np.ndarray)
. Would this be possible?
Related topics without numpy arrays:
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…