我有嵌套的字典,可能包含其他字典或列表.我需要能够比较这些词典的列表(或确定),以表明它们是平等的.
列表的顺序不统一.通常,我会将列表转换为集合,但由于存在也是字典的值,因此不可能.
a = {'color': 'red'}
b = {'shape': 'triangle'}
c = {'children': [{'color': 'red'}, {'age': 8},]}
test_a = [a, b, c]
test_b = [b, c, a]
print(test_a == test_b) # False
print(set(test_a) == set(test_b)) # TypeError: unhashable type: 'dict'
有没有一种方法来表明test_a与test_b具有相同的内容?
解决方法:
您可以使用一个简单的循环来检查一个列表中的每个列表是否在另一个列表中:
def areEqual(a, b):
if len(a) != len(b):
return False
for d in a:
if d not in b:
return False
return True
标签:python,python-3-x