我正试着列一个数字为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 ?
有人能对此提供一些见解吗?
当前回答
Python 3:
my_list = [*range(1001)]
其他回答
你真的不应该在列表中使用数字1-1000。但如果出于某种原因,你确实需要这些数字,那么你可以这样做:
[i for i in range(1, 1001)]
概括地列出理解:
上述列表的理解转化为:
nums = []
for i in range(1, 1001):
nums.append(i)
这只是2.x中的列表理解语法。我知道这将在python 3中工作,但我不确定是否有一个升级的语法
Range开始包括第一个参数;但结束Up To,不包括第二个参数(当提供2个参数;如果省略了第一个参数,它将从'0'开始)
range(start, end+1)
[start, start+1, .., end]
你可以从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中使用Range。
下面是一个示例函数,返回两个数字之间的数字
def get_between_numbers(a, b):
"""
This function will return in between numbers from two numbers.
:param a:
:param b:
:return:
"""
x = []
if b < a:
x.extend(range(b, a))
x.append(a)
else:
x.extend(range(a, b))
x.append(b)
return x
结果
print(get_between_numbers(5, 9))
print(get_between_numbers(9, 5))
[5, 6, 7, 8, 9]
[5, 6, 7, 8, 9]
Python 3:
my_list = [*range(1001)]
实际上,如果你想要1-1000(包括),使用带有参数1和1001的range(…)函数:range(1,1001),因为range(start, end)函数从start到(end-1),包括(end-1)。