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

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

当前回答

你不一定需要使用range函数,你可以简单地使用list[::-1],它应该以相反的顺序快速返回列表,而不使用任何添加。

其他回答

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

range(n)[::-1]

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

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

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

reverse(range(n))

你不一定需要使用range函数,你可以简单地使用list[::-1],它应该以相反的顺序快速返回列表,而不使用任何添加。

你可以使用range(10)[::-1],它和range(9, -1, -1)是一样的,而且可以说可读性更强(如果你熟悉常见的序列[::-1]Python习语)。

使用'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生成器)转换为列表。

使用reverse没有意义,因为range函数可以返回反向列表。

当你迭代n个项目,想要替换range(start, stop, step)返回的列表顺序时,你必须使用range中标识step的第三个参数,并将其设置为-1,其他参数也需要相应调整:

提供stop参数为-1(它之前的stop -1值,stop等于0)。 作为开始参数使用n-1。

因此,range(n)的倒序等价为:

n = 10
print range(n-1,-1,-1) 
#[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]