【发布时间】:2017-12-30 13:10:09
【问题描述】:
所以我有以下 Python 代码,它将数字 1-10 附加到列表 values:
values = []
for value in range(1, 11):
values.append(value)
print(values)
正如预期的那样,给我们[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]。
虽然不切实际,但出于好奇,我尝试使用 insert() 而不是 append() 重新创建此结果:
values = []
for value in range(1, 11):
values.insert(-1, value)
print(values)
这给了我[2, 3, 4, 5, 6, 7, 8, 9, 10, 1]的结果。
我也尝试过其他范围,每次都发生同样的事情:它是按升序排列的,除了最小的数字在末尾。
从Python Documentation Tutorial,我现在知道a.insert(len(a), x)可以用来模仿a.append(x)。但是,我仍然不明白为什么将值插入到列表中的最后一个位置,除了最小值。
【问题讨论】:
-
需要注意的一点是,插入函数在索引处插入值并递增所有值的索引(在索引之上和之后)。所以第一个插入将是 [1](现在 1 在索引 -1)接下来将是 [2,1](现在 1 在索引 -1)然后是 [2,3,1] 等等。