我正试着列一个数字为1-1000的清单。显然,这将是令人讨厌的写/读,所以我试图使一个范围内的列表。在Python 2中,似乎:
some_list = range(1,1000)
会工作,但在Python 3中,范围类似于Python 2的xrange ?
有人能对此提供一些见解吗?
我正试着列一个数字为1-1000的清单。显然,这将是令人讨厌的写/读,所以我试图使一个范围内的列表。在Python 2中,似乎:
some_list = range(1,1000)
会工作,但在Python 3中,范围类似于Python 2的xrange ?
有人能对此提供一些见解吗?
当前回答
你可以从range对象中构造一个列表:
my_list = list(range(1, 1001))
这是在python2中使用生成器的方法。X也是。通常来说,你可能不需要一个列表,因为你可以更有效地获得my_list[i]的值(i + 1),如果你只需要迭代它,你可以回到range。
还要注意在python2上。X, xrange仍然是可索引的。这意味着python3上的范围。X也有相同的性质2
1打印xrange(30)[12]适用于python2.x
在python3中类似于1的语句。X是print(range(30)[12]),同样有效。
其他回答
在Python 3中。X, range()函数有自己的类型。在这种情况下,你必须使用迭代器
list(太阳城(1000)
实际上,如果你想要1-1000(包括),使用带有参数1和1001的range(…)函数:range(1,1001),因为range(start, end)函数从start到(end-1),包括(end-1)。
Python 3:
my_list = [*range(1001)]
Python3缺少直接获取远程列表的函数的原因是,最初的Python3设计者在Python2方面是新手。他只考虑在for循环中使用range()函数,因此,列表永远不需要扩展。事实上,我们经常需要使用range()函数来生成一个列表并传递给一个函数。
因此,在这种情况下,Python3比Python2更不方便,因为:
在Python2中,我们有xrange()和range(); 在Python3中,我们有range()和list(range())
尽管如此,你仍然可以这样使用列表展开:
[*range(N)]
你可以从range对象中构造一个列表:
my_list = list(range(1, 1001))
这是在python2中使用生成器的方法。X也是。通常来说,你可能不需要一个列表,因为你可以更有效地获得my_list[i]的值(i + 1),如果你只需要迭代它,你可以回到range。
还要注意在python2上。X, xrange仍然是可索引的。这意味着python3上的范围。X也有相同的性质2
1打印xrange(30)[12]适用于python2.x
在python3中类似于1的语句。X是print(range(30)[12]),同样有效。