list.insert()实际上在python中做了什么?

时间:2017-12-03 01:56:00

标签: python python-3.x list insert

我有这样的代码:

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',它插入第一个可用索引。那么'插入'做出决定?

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)

基本上,它与追加相似,不同之处在于,它允许您在列表中的任何位置(而不是在结尾处)插入新项目。