x = [0, 1, -2, 3, 4, 5]
all ([i for i in range (1, len(x)) if x [i-1] < x[i]]) ?
Run Code Online (Sandbox Code Playgroud)
为什么要打印此代码True?
1> -2所以它应该打印False我认为.
您的代码没有按照您的想法执行.它首先过滤掉一些元素,然后评估一堆索引的真实性.由于所有索引都是严格正数,因此它们都是真实的,并且您的代码始终评估为True.
根据您的描述,您实际上要做的是:
>>> all(x[i-1] < x[i] for i in range (1, len(x)))
False
Run Code Online (Sandbox Code Playgroud)
这将迭代所有连续元素对,并检查第一个元素是否小于第二个元素.
另一种写这个的方法是:
>>> all(a < b for (a, b) in zip(x, x[1::]))
False
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
69 次 |
| 最近记录: |