我试着从100循环到0。在Python中如何做到这一点?

I在(100,0)范围内不成立。


有关为什么range以这种方式工作的讨论,请参见为什么slice和range是独占的?


当前回答

这对我很管用

for i in range(5)[::-1]:
    print(i,end=' ')

输出:4 3 2 10 0

其他回答

我想同时对两个列表进行反向循环,所以我需要负下标。这是我的解决方案:

a= [1,3,4,5,2]
for i in range(-1, -len(a), -1):
    print(i, a[i])

结果:

-1 2
-2 5
-3 4
-4 3
-5 1

又短又甜。这是我在做codeAcademy课程时的解决方案。按rev顺序打印字符串。

def reverse(text):
    string = ""
    for i in range(len(text)-1,-1,-1):
        string += text[i]
    return string    

我在代码学院的一个练习中尝试了这一点(在字符串中反转字符而不使用反转或::-1)

def reverse(text):
    chars= []
    l = len(text)
    last = l-1
    for i in range (l):
        chars.append(text[last])
        last-=1

    result= ""   
    for c in chars:
        result += c
    return result
print reverse('hola')

对于var在范围(10,-1,-1)有效

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

还有一些稍长的(慢的)解决方案:

for i in reversed(range(101))

for i in range(101)[::-1]