Pytestで、ネストされたコンテンツを持つ2つの辞書が互いに等しい(順序は関係ありません)と断言しようとします。これを行うPythonの方法は何ですか?
単純なアサート等価テストは大丈夫だと思います:
>>> d1 = {n: chr(n+65) for n in range(10)}
>>> d2 = {n: chr(n+65) for n in range(10)}
>>> d1 == d2
True
>>> l1 = [1, 2, 3]
>>> l2 = [1, 2, 3]
>>> d2[10] = l2
>>> d1[10] = l1
>>> d1 == d2
True
>>> class Example:
stub_prop = None
>>> e1 = Example()
>>> e2 = Example()
>>> e2.stub_prop = 10
>>> e1.stub_prop = 'a'
>>> d1[11] = e1
>>> d2[11] = e2
>>> d1 == d2
False
assert all(v == actual_dict[k] for k,v expected_dict.items()) and len(expected_dict) == len(actual_dict)
あなたの質問はあまり具体的ではありませんが、私が理解できることでは、長さが同じかどうかを確認しようとしています
a = [1,5,3,6,3,2,4]
b = [5,3,2,1,3,5,3]
if (len(a) == len(b)):
print True
else:
print false
またはリストの値が同じかどうかを確認する
import collections
compare = lambda x, y: collections.Counter(x) == collections.Counter(y)
compare([1,2,3], [1,2,3,3])
print compare #answer would be false
compare([1,2,3], [1,2,3])
print compare #answer would be true
ただし、辞書には
x = dict(a=1, b=2)
y = dict(a=2, b=2)
if(x == y):
print True
else:
print False