我有这样的代码:
squares = []
for value in range(1, 5):
squares.insert(value+1,value**2)
print(squares)
print(squares[0])
print(len(squares))
输出是:
[1, 4, 9, 16]
1
4
所以,即使我要求python插入' 1'在索引' 2',它插入第一个可用索引。那么'插入'做出决定?
答案 0 :(得分:1)
来自Python3 doc:
list.insert(i, x)
在指定位置插入项目。首先 argument是要插入的元素的索引,所以 a.insert(0,x)插入列表的前面,a.insert(len(a), x)相当于a.append(x)。
未提及的是,您可以提供超出范围的索引,然后Python将附加到列表中。
如果你深入研究Python implementation,你会在执行插入的ins1
函数中找到以下内容:
if (where > n)
where = n;
因此,基本上Python会将你的索引最大化到列表的长度。
答案 1 :(得分:0)
基本上,它与追加相似,不同之处在于,它允许您在列表中的任何位置(而不是在结尾处)插入新项目。