Python 单元测试2个列表中的每个元素是否匹配

Python 单元测试2个列表中的每个元素是否匹配,python,list,unit-testing,comparison,Python,List,Unit Testing,Comparison,在Python中对两个列表进行单元测试,确保它们是相同的。如果他们不按顺序的话,似乎就失败了。考虑先对它们进行排序或转换为一个集合。但是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 也许考虑一个集合。计数器<

在Python中对两个列表进行单元测试,确保它们是相同的。如果他们不按顺序的话,似乎就失败了。考虑先对它们进行排序或转换为一个集合。但是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


也许考虑一个<代码>集合。计数器< /代码> -它是一个在<代码>设置>代码>和列表排序之间的交叉,然后比较它…它的

\uuuu eq\uuuu
方法检查两个键中的每个键是否存在,以及数量是否匹配,例如:

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

整洁我不知道
集合。计数器
,我总是用键制作一个字典,然后增加值,但我看到计数器也有很多其他可用的方法。@自私的宇航员这和那种方法差不多,但它只是为你做了一些背景工作。。。plus有一些被重写的方法,这些方法只在int作为其可能值时才有意义。。。(所以你可以做
Counter(l1)+Counter(l2)
,它可以用int作为值,而不是一个普通的
dict
,它可以包含任何作为值的东西等等。)在你的情况下,对它们进行排序会很好。是的,对列表进行排序确实有效,我希望有一种更具Pythonic风格的方式,可以让下一个灵魂阅读。