Python范围列出

Chu*_*cks 4 python

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

nums = []
for x in range (9000, 9004):
    nums.append(x)
    print nums
Run Code Online (Sandbox Code Playgroud)

产量

[9000]
[9000, 9001]
[9000, 9001, 9002]
[9000, 9001, 9002, 9003]
Run Code Online (Sandbox Code Playgroud)

我只需要类似的东西

 [9000, 9001, 9002, 9003]
Run Code Online (Sandbox Code Playgroud)

我如何获得所需的列表?

erg*_*aut 20

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

range(10)
>>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)

在你的情况下:

>>> nums = range(9000,9004)
>>> nums
[9000, 9001, 9002, 9003]
>>> 
Run Code Online (Sandbox Code Playgroud)

但是,python3您需要使用list()来限定它

>>> nums = list(range(9000,9004))
>>> nums
[9000, 9001, 9002, 9003]
>>> 
Run Code Online (Sandbox Code Playgroud)


Nei*_*eil 7

Python 3

出于效率方面的考虑,Python在使用时不再创建列表range。新范围类似于xrangePython 2.7。它创建一个可迭代的范围对象,您可以使用循环或访问该对象[index]

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

[*range(9000,9004)]
Run Code Online (Sandbox Code Playgroud)

Python 2

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

range(9000,9004)
Run Code Online (Sandbox Code Playgroud)


小智 3

由于您在 for 循环下使用 print 语句,因此只需将 print 语句放在循环之外即可。

nums = []
for x in range (9000, 9004):
    nums.append(x)
print (nums)
Run Code Online (Sandbox Code Playgroud)