如果我想比较其中包含assert
个值的2个词组,我应该使用哪个list
语句。
例如,如果这些dicts是这样的:
{'other_parts': ['director', 'head', 'chief', 'leader', 'administrator'], 'headword': 'manager', 'language': 'en'}
{'other_parts': ['director', 'chief', 'head', 'leader', 'administrator'], 'headword': 'manager', 'language': 'en'}
我想要比较这两个dicts,因为我不关心嵌套列表中的顺序。
与assertDictEqual
的比较失败,因为我认为other_parts
的嵌套列表的顺序不同。
答案 0 :(得分:1)
如果您不关心订单,则必须对列表进行排序或使用一套(仅当您确定列表不会包含重复内容时!)
dict1['other_parts'] = sorted(dict1['other_parts'])
dict2['other_parts'] = sorted(dict2['other_parts'])
assertDictEqual(dict1, dict2)
答案 1 :(得分:1)
在修改你的问题之后,似乎AssertCountEqual
正是你正在寻找的 - 正如documentation中所解释的那样。
如果它不适用于整个结构,我会使用循环在每个内部列表上运行它。