编写一些测试用例时,我的思绪在徘徊,假设有更好的方法来编写这样的东西。我有一个列表,它的数字从所有的奇数到所有的偶数,在哪里都不重要。我要断言这是事实,我想到的是:
values = [1, 3, 5, 7, 5, 3, 5, 3, 5, 7, 4, 6, 8, 4, 2, 2, 8, 6]
# find all the indexes of odd and even values
odds = [i for (i, v) in enumerate(values) if v % 2 == 1]
evens = [i for (i, v) in enumerate(values) if v % 2 == 0]
# indexes should be a continuous sequence: 0, 1, 2, 3 ... n
assert odds + evens == range(evens[-1] + 1)
似乎还有很长的路要走。关于如何减少这种情况的建议?在
只有当
values
以它自己的所有奇数值开头,后跟所有的偶数值时,这才是正确的。在一个可能的解决方案是考虑你只允许
换句话说,唯一被禁止的转变是
^{pr2}$这意味着
好吧,你不需要计算
evens
:相关问题 更多 >
编程相关推荐