Python 3.x 在python中创建从a到b的整数列表

Python 3.x 在python中创建从a到b的整数列表,python-3.x,Python 3.x,创建从a(包含)到b(包含)的整数列表。 例子: 整数(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

创建从a(包含)到b(包含)的整数列表。 例子:
整数(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]
。但是,不可能只向现有列表中添加单个元素(本例中为数字)。尝试这样做将导致
类型错误

您可以不使用一个元素列表进行连接,只需使用相同名称的方法附加元素:

list.append(i)

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

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

来包装它。它很简洁,不需要在列表中添加不必要的内容(在您这边)


使用np.arange。范例

    i=np.arange(1,9)
这将导致

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

数组比python中的列表更好,非常紧凑,并且仅使用python标准库:

i=range(6)[2:]
创建一个包含6个成员(从0到6)的列表,并选择索引为2的成员

print(i)
[2, 3, 4, 5]
要选择其他范围,请尝试:

i=range(6)[2:4]

print(i)
[2, 3]

请将您的问题改为添加信息。谢谢。我现在明白了。@steveha我把你问题的答案放在这里:列表(范围(9))。比做numpy.arange(9.tolist()容易。
i=range(6)[2:4]

print(i)
[2, 3]