创建从 a(含)到 b(含)的整数列表。示例:
integers(2,5)
返回[2, 3, 4, 5]
.
我知道这可能很容易,但我似乎无法得到任何工作。
>>> 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
(dict
或str
等),因为这将在本地覆盖对内置函数/类型的引用。
列表推导在这里最有意义。它很简洁,不涉及不必要地附加到列表中(在你的最后)。
def integers(a, b):
return [i for i in range(a, b+1)]
使用 np.arange。例子
i=np.arange(1,9)
这将导致
array([ 1, 2, 3, 4, 5, 6, 7, 8])
数组比 python 中的列表更好
这个问题很简单;我不想只告诉你答案,因为你可以查到。查看内置函数的文档range()
。由于您使用的是 Python 3.x,因此您需要range()
通过调用list()
.
非常紧凑,仅使用 Python 标准库:
i=range(6)[2:]
创建一个包含从 0 到 6 的 6 个成员的列表,并选择索引为 2 到末尾的成员。
print(i)
[2, 3, 4, 5]
要选择不同的范围,请尝试:
i=range(6)[2:4]
print(i)
[2, 3]