在Python中2个列表相同的单元测试。如果他们不按顺序执行,似乎会失败。考虑先对其进行排序或转换为集合。但是如果有重复等,set方法就不正确
l1 = ['c-00355', 'b-0ae53', 'c-07d32']
l2 = ['b-0ae53', 'c-07d32' ,'c-00355']
l1 == l2
False
set(l1) == set(l2)
True
sorted(l1) == sorted(l2)
True
答案 0 :(得分:1)
也许考虑使用collections.Counter
-这是set
和列表排序之间的一种交叉,然后将其进行比较...这是__eq__
方法,检查每个键是否都存在,并且数量是否匹配,例如:
from collections import Counter
l1 = ['c-00355', 'b-0ae53', 'c-07d32']
l2 = ['b-0ae53', 'c-07d32' ,'c-00355']
Counter(l1) == Counter(l2)
# True
l2 = ['b-0ae53', 'c-07d32' ,'c-00355', 'c']
Counter(l1) == Counter(l2)
# False