在python中创建一个从a到b的整数列表

时间:2012-12-12 22:14:39

标签: python-3.x

创建从(包括)到b(包括)的整数列表。 例: integers(2,5)会返回[2, 3, 4, 5]

我知道这可能很简单,但我似乎无法开始工作。

5 个答案:

答案 0 :(得分:6)

>>> def integers(a, b):
         return list(range(a, b+1))
>>> integers(2, 5)
[2, 3, 4, 5]

解释您自己的解决方案:

  

你能解释一下为什么在某些程序中你必须包含[i]而有些只是i

def integers(a,b):
   list = []
   for i in range(a, b+1):
       list = list + [i]

i指的是数字本身; [i]是包含一个元素i的列表。对列表使用+运算符时,Python可以连接两个列表,因此[1, 2] + [3, 4][1, 2, 3, 4]。但是,不可能只将单个元素(在这种情况下为数字)添加到现有列表中。尝试这样会产生TypeError

你可以做什么而不是与单元素列表连接,只需使用相同名称的方法追加元素:

list.append(i)

最后请注意,您不应将变量命名为list(或dictstr等),因为这会在本地覆盖对内置函数/类型的引用。< / p>

答案 1 :(得分:2)

list comprehension在这里最有意义。它很简洁,不会不必要地附加到列表中(在你的最后)。

def integers(a, b):
    return [i for i in range(a, b+1)]

答案 2 :(得分:1)

使用np.arange。实施例

    i=np.arange(1,9)

这将导致

    array([ 1,  2,  3,  4,  5,  6,  7,  8])

数组比python中的列表更好

答案 3 :(得分:0)

这个问题很简单;我不想只是告诉你答案,因为你可以查一查。查看内置函数range()的文档。由于您使用的是Python 3.x,因此需要明确强制range()的输出通过调用list()来扩展到列表。

答案 4 :(得分:0)

非常紧凑,并且仅使用Python标准库:

i=range(6)[2:]

创建一个列表,其中包含6个成员(从0到6),并选择索引为2到结尾的成员。

print(i)
[2, 3, 4, 5]

要选择其他范围,请尝试:

i=range(6)[2:4]

print(i)
[2, 3]