unittest - 比较列表,不管订单如何

时间:2018-04-29 22:10:31

标签: python unit-testing

我正在对两个列表值列表进行单元测试:

self.assertEqual(sale, [['1',14], ['2',5], ['3',7], ['4',1]])

但是它给出了以下错误:

AssertionError: Lists differ: [['1', 14], ['4', 1], ['2', 5], ['3', 7]] != [['1'
, 14], ['2', 5], ['3', 7], ['4', 1]]

First differing element 1:
['4', 1]
['2', 5]

- [['1', 14], ['4', 1], ['2', 5], ['3', 7]]
+ [['1', 14], ['2', 5], ['3', 7], ['4', 1]]

如何让这个场景通过,防止assertEqual函数避免检查列表中元素的顺序。

1 个答案:

答案 0 :(得分:1)

由于Python列表会跟踪顺序,因此您需要一些方法来确保项目的顺序相同。

如果所有项目都是唯一的,那么集合可能会起作用。如果它们不是唯一的,您将丢失有关重复项的信息。

在比较列表之前对列表进行排序可能是您最好的选择。它将保持所有数据的完整性,并在每个列表中以相同的顺序放置它们。

这是Python 3中列表的不同内置排序方法的链接。 https://docs.python.org/3/howto/sorting.html