我在试着列一张有数字1-1000
的清单。显然,这将是恼人的写/读,所以我尝试做一个列表,其中有一个范围。在Python 2中,似乎是:
some_list = range(1,1000)
可以工作,但在Python3中,范围类似于Python2的xrange
?
有人能提供一些关于这方面的见解吗?
发布于 2017-11-03 07:53:12
在Pythons <= 3.4中,您可以像其他人建议的那样,使用list(range(10))
来创建一个范围之外的列表(通常是任何可迭代的)。
Python 3.5
中引入的另一种替代方法是在列表文字[]
中使用*
>>> r = range(10)
>>> l = [*r]
>>> print(l)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
虽然这等同于list(r)
,但它是文字语法,并且不涉及任何函数调用的事实确实让它执行得更快。如果您需要编写高尔夫代码,它的字符也更少:-)
发布于 2015-03-01 02:38:08
在Python3.x中,range()
函数有自己的类型。因此在这种情况下,您必须使用迭代器
list(range(1000))
发布于 2020-11-10 15:40:36
Python 3:
my_list = [*range(1001)]
https://stackoverflow.com/questions/11480042
复制相似问题