如何在Python中使用range()生成以下列表?

[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

当前回答

你可以用range() BIF打印反向数字,比如,

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

输出将是 (10、9、8、7、6、5、4、3、2、1]

Range() -范围(开始,结束,递增/递减) 哪里开始是包括,结束是排他和增量可以是任何数字和行为像步骤

其他回答

因为range(n)生成了一个可迭代对象,所以你可以做各种各样的事情来产生你想要的结果,比如:

range(n)[::-1]

如果循环没问题,我们可以创建一个队列:

a = []
for i in range(n):
    a.insert(0,a)
return a

或者可以使用reverse()方法:

reverse(range(n))
[9-i for i in range(10)]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

使用reversed()函数:

reversed(range(10))

这更有意义。

更新:

如果你想让它是一个列表(正如btk指出的那样):

list(reversed(range(10)))

更新:

如果您希望仅使用range来实现相同的结果,则可以使用它的所有参数。范围(开始,停止,步长)

例如,要生成一个列表[5,4,3,2,1,0],您可以使用以下命令:

range(5, -1, -1)

这可能不太直观,但正如评论所提到的,这是更有效的,并且是反转列表的正确使用范围。

使用'range'内置函数。签名是范围(start, stop, step)。这将产生一个产生数字的序列,从start开始,如果到达stop就结束,不包括stop。

>>> range(9,-1,-1)
    range(9, -1, -1)
>>> list(range(9,-1,-1))
    [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> list(range(-2, 6, 2))
    [-2, 0, 2, 4]

列表构造函数将range(一个python生成器)转换为列表。

不带[::-1]或颠倒-的

def reverse(text):
    result = []
    for index in range(len(text)-1,-1,-1):
        c = text[index]
        result.append(c)
    return ''.join(result)

print reverse("python!")