如何在两个值之间创建一个升序列表?例如,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的支持

其他回答

如果你正在寻找适用于浮点类型的范围函数,那么这是一篇非常好的文章。

def frange(start, stop, step=1.0):
    ''' "range()" like function which accept float type''' 
    i = start
    while i < stop:
        yield i
        i += step
# Generate one element at a time.
# Preferred when you don't need all generated elements at the same time. 
# This will save memory.
for i in frange(1.0, 2.0, 0.5):
    print i   # Use generated element.
# Generate all elements at once.
# Preferred when generated list ought to be small.
print list(frange(1.0, 10.0, 0.5))    

输出:

1.0
1.5
[1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5, 8.0, 8.5, 9.0, 9.5]

使用范围。在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()使用十进制步进值?

Try:

range(x1, x2+1)  

这是Python 2中的一个列表。在Python 3.x中,它的行为很像一个列表。如果你正在运行Python 3并且需要一个可以修改的列表,那么使用:

list(range(x1, x2+1))

上面的每个答案都假设range仅为正数。下面是返回连续数字列表的解决方案,其中参数可以是任何(正或负),并可以设置可选的步长值(默认= 1)。

def any_number_range(a,b,s=1):
""" Generate consecutive values list between two numbers with optional step (default=1)."""
if (a == b):
    return a
else:
    mx = max(a,b)
    mn = min(a,b)
    result = []
    # inclusive upper limit. If not needed, delete '+1' in the line below
    while(mn < mx + 1):
        # if step is positive we go from min to max
        if s > 0:
            result.append(mn)
            mn += s
        # if step is negative we go from max to min
        if s < 0:
            result.append(mx)
            mx += s
    return result

例如,标准命令列表(range(1,-3))返回空列表[],而此函数将返回[-3,-2,-1,0,1]

更新:现在的步骤可能是负的。谢谢@Michael的评论。

在python中使用列表理解式。既然你也想要16个。使用x2 + 1。Range函数不包括函数中的上限。

list=[x for x in range(x1, x2+1)]