创建从(包括)到b(包括)的整数列表。
例:
integers(2,5)
会返回[2, 3, 4, 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
(或dict
或str
等),因为这会在本地覆盖对内置函数/类型的引用。< / 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]