doctestpython-忽略列表的顺序
是否有doctest指令在匹配预期列表和返回列表时忽略元素的顺序 此操作当前失败:doctestpython-忽略列表的顺序,python,doctest,Python,Doctest,是否有doctest指令在匹配预期列表和返回列表时忽略元素的顺序 此操作当前失败: Expected: ['foo', 'bar'] Got: ['bar', 'foo'] 问题解决了 原来我正在打印列表,所以doctest试图匹配字符串而不是列表 FTR,doctest不匹配列表,忽略元素的顺序。doctest始终匹配字符串输出。如果要忽略列表元素的顺序,建议使用sorted 本节的最后一个示例摘自: doctest对于在预期输出中要求精确匹配是认真的。 如果哪怕只有一个字符不匹配,
Expected:
['foo', 'bar']
Got:
['bar', 'foo']
问题解决了
原来我正在打印列表,所以doctest试图匹配字符串而不是列表
FTR,doctest不匹配列表,忽略元素的顺序。doctest始终匹配字符串输出。如果要忽略列表元素的顺序,建议使用
sorted
本节的最后一个示例摘自:
doctest对于在预期输出中要求精确匹配是认真的。
如果哪怕只有一个字符不匹配,测试也会失败。这将
可能会让您惊讶几次,因为您确切地了解了Python是什么
是否保证输出。例如,在打印
设置时,Python不保证元素以任何形式打印
特定的顺序,所以像这样的测试
>>>
>>> foo()
{"Hermione", "Harry"}
他很脆弱!一个解决办法是
>>>
>>> foo() == {"Hermione", "Harry"}
True
相反。另一个是做什么
>>>
>>> d = sorted(foo())
>>> d
[‘哈利’、‘赫敏’]
也许您想使用
集合
而不是列表
?列表
是一个有序的数据结构,因此忽略它不利于从一开始就使用这种数据结构。测试到底是什么?嗨@Priyans agrawal,这似乎是一个不正确的“决定”。Doctest匹配字符串输出。请参阅我的答案和doctest文档中的示例。