Python – 创build2个值之间的数字列表?

我将如何创build一个列表,其中值之间的值我把? 例如,为11到16之间的值生成以下列表:

list = [11, 12, 13, 14, 15, 16] 

使用range 。 在Python 2.x中它返回一个列表,所以你只需要,

 >>> range(11, 17) [11, 12, 13, 14, 15, 16] 

在Python 3.x中,它是一个迭代器,因此您需要将其转换为列表,

 >>> list(range(11, 17)) [11, 12, 13, 14, 15, 16] 

注意 :第二个数字是唯一的,所以这里需要16+1 = 17

编辑:

为了回答关于递增0.5的问题,最简单的select可能是使用numpyarange

 >>> numpy.arange(11, 17, 0.5) array([ 11. , 11.5, 12. , 12.5, 13. , 13.5, 14. , 14.5, 15. , 15.5, 16. , 16.5]) 

你似乎在寻找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] 

尝试:

 range(x1,x2+1) 

这是Python 2.x中的一个列表,其行为大部分与Python 3.x中的列表类似。 如果您正在运行Python 3并需要可以修改的列表,请使用:

 list(range(x1,x2+1)) 

在Python中使用列表理解。 既然你想在列表中16也是..使用x2 + 1。 范围function不包括function的上限。

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

如果你正在寻找类似于floattypes的函数,那么这里是一篇很好的文章 。

 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] 

假设你想在x到y之间有一个范围

 range(x,y+1) >>> range(11,17) [11, 12, 13, 14, 15, 16] >>> 

使用3.x支持列表