Python范围列出

时间:2015-11-13 18:54:30

标签: python

我正在尝试将范围转换为列表。

nums = []
for x in range (9000, 9004):
    nums.append(x)
    print nums

输出

[9000]
[9000, 9001]
[9000, 9001, 9002]
[9000, 9001, 9002, 9003]

我只需要像

这样的东西
 [9000, 9001, 9002, 9003]

如何获得所需的列表?

4 个答案:

答案 0 :(得分:16)

您可以将范围分配给变量:

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

在你的情况下:

>>> nums = range(9000,9004)
>>> nums
[9000, 9001, 9002, 9003]
>>> 

但是,在python3中,您需要使用list()

来限定它
>>> nums = list(range(9000,9004))
>>> nums
[9000, 9001, 9002, 9003]
>>> 

答案 1 :(得分:5)

Python 3

出于效率原因,当您使用range时,Python不再创建列表。新范围类似于Python 2.7中的xrange。它会创建一个可迭代的范围对象,您可以使用[index]进行循环或访问。

如果将其与位置扩展运算符*结合使用,尽管有新的实现,我们仍可以轻松生成列表。

[*range(9000,9004)]

Python 2

在Python 2中,range确实创建了一个列表...因此:

range(9000,9004)

答案 2 :(得分:1)

范围的输出是一个列表:

>>> print range(9000, 9004)
[9000, 9001, 9002, 9003]

答案 3 :(得分:0)

由于您将打印语句置于for循环下,因此只需将打印语句置于循环外即可。

nums = []
for x in range (9000, 9004):
    nums.append(x)
print (nums)