如何在两个值之间创建一个升序列表?例如,11和16之间的列表:
[11, 12, 13, 14, 15, 16]
如何在两个值之间创建一个升序列表?例如,11和16之间的列表:
[11, 12, 13, 14, 15, 16]
当前回答
假设你想要一个x到y的范围
range(x,y+1)
>>> range(11,17)
[11, 12, 13, 14, 15, 16]
>>>
3使用list。x的支持
其他回答
使用范围。在Python 2中,它直接返回一个列表:
>>> range(11, 17)
[11, 12, 13, 14, 15, 16]
在Python 3中,range是一个迭代器。将其转换为列表:
>>> list(range(11, 17))
[11, 12, 13, 14, 15, 16]
注意:范围内的第二个数字(start, stop)是排他的。所以,stop = 16+1 = 17。
要增加0.5,可以考虑使用numpy的arange()和.tolist():
>>> import numpy as np
>>> np.arange(11, 17, 0.5).tolist()
[11.0, 11.5, 12.0, 12.5, 13.0, 13.5,
14.0, 14.5, 15.0, 15.5, 16.0, 16.5]
参见:如何为range()使用十进制步进值?
在python中使用列表理解式。既然你也想要16个。使用x2 + 1。Range函数不包括函数中的上限。
list=[x for x in range(x1, x2+1)]
@YTZ的回答很适合我。我必须生成一个从0到10000的列表,步长为0.01,由于舍入问题,在每次迭代中简单地添加0.01是行不通的。
因此,我采纳了@YTZ的建议,编写了如下函数:
import numpy as np
def generate_floating_numbers_in_range(start: int, end: int, step: float):
"""
Generate a list of floating numbers within a specified range.
:param start: range start
:param end: range end
:param step: range step
:return:
"""
numbers = np.linspace(start, end,(end-start)*int(1/step)+1).tolist()
return [round(num, 2) for num in numbers]
假设你想要一个x到y的范围
range(x,y+1)
>>> range(11,17)
[11, 12, 13, 14, 15, 16]
>>>
3使用list。x的支持
你似乎在寻找range():
>>> x1=11
>>> x2=16
>>> range(x1, x2+1)
[11, 12, 13, 14, 15, 16]
>>> list1 = range(x1, x2+1)
>>> list1
[11, 12, 13, 14, 15, 16]
如果要增加0.5而不是1,那么:
>>> list2 = [x*0.5 for x in range(2*x1, 2*x2+1)]
>>> list2
[11.0, 11.5, 12.0, 12.5, 13.0, 13.5, 14.0, 14.5, 15.0, 15.5, 16.0]