要列出的Python范围[重复]

liwlm1x9  于 2023-06-04  发布在  Python
关注(0)|答案(4)|浏览(97)

此问题已在此处有答案

Python 3 turn range to a list(9个回答)
What is the purpose of the return statement? How is it different from printing?(15个答案)
昨天关门了。
我正在尝试将范围转换为列表。

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]

我如何得到所需的列表?

kgsdhlau

kgsdhlau1#

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

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]
>>>
hpcdzsge

hpcdzsge2#

Python 3

出于效率原因,Python在使用range时不再创建列表。新的范围类似于Python 2.7中的xrange。它创建了一个可迭代的范围对象,您可以使用[index]循环或访问该对象。
如果我们将其与位置展开运算符*结合起来,尽管有新的实现,我们仍然可以轻松地生成列表。

[*range(9000,9004)]

Python 2

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

range(9000,9004)
xzlaal3s

xzlaal3s3#

因为你是在for循环下使用print语句,所以只需要将print语句放在循环之外。

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

jvidinwx4#

range的输出是一个列表:

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

相关问题