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可能是使用numpy
的arange
,
>>> 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支持列表