有没有办法使用range()stride -1 的函数?
例如,使用range(10, -10)下面的方括号值而不是?
即以下行:
for y in range(10,-10)
Run Code Online (Sandbox Code Playgroud)
代替
for y in [10,9,8,7,6,5,4,3,2,1,0,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10]:
Run Code Online (Sandbox Code Playgroud)
显然,人们可以用更优雅的另一种循环来做到这一点,但是这个range()例子对于我想要的东西会更好.
Use*_*ess 51
您可以指定步幅(包括负步幅)作为第三个参数,所以
range(10,-11,-1)
Run Code Online (Sandbox Code Playgroud)
给
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, -10]
Run Code Online (Sandbox Code Playgroud)
一般来说,尝试不需要任何费用.您只需将其输入解释器并查看其功能即可.
这一切都记录在这里:
range(start, stop[, step])
Run Code Online (Sandbox Code Playgroud)
但大多数情况下,我想鼓励你玩,看看会发生什么.正如你所看到的,你的直觉很明显.
除了其他好的答案,还有另一种选择:
for y in reversed(range(-10, 11)):
Run Code Online (Sandbox Code Playgroud)
请参阅文档reversed().
小智 5
您可能会注意到范围函数仅在没有第三个参数的情况下按升序运行.如果在范围块中没有第三个参数时使用它,它将不起作用.
for i in range(10,-10)
Run Code Online (Sandbox Code Playgroud)
上面的循环不起作用.要使上述循环起作用,必须使用第三个参数作为负数.
for i in range(10,-10,-1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50773 次 |
| 最近记录: |