6

创建从 a(含)到 b(含)的整数列表。示例: integers(2,5)返回[2, 3, 4, 5].

我知道这可能很容易,但我似乎无法得到任何工作。

4

5 回答 5

7
>>> 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)

最后一点,您不应该命名您的变量listdictstr等),因为这将在本地覆盖对内置函数/类型的引用。

于 2012-12-12T22:34:37.473 回答
3

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

def integers(a, b):
    return [i for i in range(a, b+1)]
于 2012-12-12T22:47:56.693 回答
2

使用 np.arange。例子

    i=np.arange(1,9)

这将导致

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

数组比 python 中的列表更好

于 2018-02-16T18:14:40.670 回答
1

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

于 2012-12-12T22:35:12.207 回答
0

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

i=range(6)[2:]

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

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

要选择不同的范围,请尝试:

i=range(6)[2:4]

print(i)
[2, 3]
于 2018-12-04T19:50:25.843 回答