是否按与range()相反的顺序打印列表?

2024-04-24 14:14:51 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

Tags: 列表range
3条回答

使用“range”内置函数。签名是range(start, stop, step)。这将生成一个序列,该序列从start开始,在到达stop时结束,不包括stop

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

在Python 3中,这将生成一个非listrange对象,它的功能与只读列表类似(但使用的内存更少,特别是在大范围内)。

您可以使用range(10)[::-1],这与range(9, -1, -1)是一样的,而且可以说更具可读性(如果您熟悉常用的sequence[::-1]Python习惯用法)。

使用reversed()函数:

reversed(range(10))

它更有意义。

更新:

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

list(reversed(range(10)))

更新:

如果只想使用range来获得相同的结果,可以使用它的所有参数。range(start, stop, step)

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

range(5, -1, -1)

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

相关问题 更多 >