2010-11-27 48 views
57

我可能是错的(只是让我知道,我会删除的问题),但它似乎Python将不在Python中减少循环是不可能的?

for n in range(6,0): 
    print n 

我使用的xrange尝试,并没有擦出火花响应。我怎样才能实现呢?

+0

出于好奇,你用这个做什么?这种功能很少见! – katrielalex 2010-11-27 22:07:26

+0

@katrielalex我用它从右到左迭代矩阵。你有什么不同的建议我应该这样做吗? – Gal 2010-11-27 23:33:14

+0

你可以尝试`为我在颠倒(垫):`虽然这可能会更慢 – katrielalex 2010-11-27 23:42:45

回答

128
for n in range(6,0,-1): 
    print n 
# prints [6, 5, 4, 3, 2, 1] 
3
for n in range(6,0,-1): 
    print n 
2
>>> range(6, 0, -1) 
[6, 5, 4, 3, 2, 1] 
25

这是非常晚了,但我只是想补充一点,还有一个更优雅的方式:使用reversed

for i in reversed(range(10)): 
    print i 

给出:

4 
3 
2 
1 
0 
5
for n in range(6,0,-1) 

这将使6,5,4,3,2,1

你至于

for n in reversed(range(0,6)) 

会给你5,4,3,2,1,0

1

0是有条件的值时,这种情况是真实的,循环将保持executing.10是初始值。 1是可能简单递减的修饰符。

for number in reversed(range(0,10,1)): 
print number;