Tom*_*thi 6 python unit-testing
我正在对两个列表值列表进行单元测试:
self.assertEqual(sale, [['1',14], ['2',5], ['3',7], ['4',1]])
Run Code Online (Sandbox Code Playgroud)
但它给出了以下错误:
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]]
Run Code Online (Sandbox Code Playgroud)
我怎样才能让这个场景通过,防止 assertEqual 函数来避免检查列表中元素的顺序。
小智 7
由于 Python 列表会跟踪顺序,因此您需要某种方法来确保项目的顺序相同。
如果所有项目都是唯一的,则一组可能会起作用。如果它们不是唯一的,您将丢失有关重复项的信息。
在比较之前对列表进行排序可能是最好的选择。它将保持所有数据完整,并将它们按相同的顺序放置在每个列表中。
以下是 Python 3 中列表的不同内置排序方法的链接。 https://docs.python.org/3/howto/sorting.html