Warning: file_put_contents(/datas/wwwroot/jiajiahui/core/caches/caches_template/2/default/show.php): failed to open stream: Permission denied in /datas/wwwroot/jiajiahui/core/libraries/classes/template_cache.class.php on line 55

Warning: chmod(): Operation not permitted in /datas/wwwroot/jiajiahui/core/libraries/classes/template_cache.class.php on line 56
Python范围()带负向步伐 - 源码之家

Python范围()带负向步伐

问题描述:

有没有一种使用range()函数和stride-1的方法?Python范围()带负向步伐

E.g.使用range(10, -10)而不是下面的方括号中的值?

即以下行:

for y in range(10,-10) 

而不是

for y in [10,9,8,7,6,5,4,3,2,1,0,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10]: 

显然,一个能做到这一点与其他类型的循环更优雅,但range()例如将工作太多了我想要的东西更好。

range(10,-11,-1) 

在一般情况下,它不花费任何尝试 - 你可以输入到这个解释,并看看会发生什么。

作为参考,这也是所有documented,但主要是我想鼓励你不要害怕玩耍,看看会发生什么。正如你所看到的,你的直觉是现货。

+5

也许我错了 - 我知道这不会是第一次 - 我不认为有任何需要snarkiness。我同意这个问题隐藏了很少的研究工作;然而,这对于一个新手来说可能是一件困难的事情。 – bernie 2012-03-28 14:56:26

+5

你可能是对的,这是一个弱点。也许正面的鼓励会更好...... – Useless 2012-03-28 14:57:35

+1

没有伤害没有犯规。有一个upvote – bernie 2012-03-28 14:58:10

是,通过定义一个步骤:

for i in range(10, -11, -1): 
    print(i) 

是的,但是您需要通过将step参数设置为-1来指定您想要退后一步。

用途:

for y in range(10, -10, -1)

+1

这可惜不打印-10 ...它从10到-9。 – 2017-01-01 19:53:11

除了其他很好的答案,还有一种替代方案:

for y in reversed(range(-10, 11)): 

查看文档reversed()

您可能会注意到,范围函数只能在没有第三个参数的情况下以升序方式工作。如果在范围块中没有使用第三个参数,则不起作用。

for i in range(10,-10) 

上述循环不起作用。 要使上述循环正常工作,您必须使用第三个参数作为负数。

for i in range(10,-10,-1)