2017-12-03 9 views
0

私はこのようなコードを持っている:実際にpythonで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 

私はインデックス「2」に「1」を挿入するためのpythonを依頼してもそう、それは最初に利用可能に挿入されますインデックス。だから、「挿入」はどうやって決定するのですか? Python3 docから

+0

要素がない場合には、それだけで 'tail'にそして、あなたの例から、それを挿入します、あなたが言及している行動は、それがマニュアルに言うまさにませ – user1767754

+1

明確ではありません。どの部分が不明ですか? –

+0

@JohnZwinckは、インデックスがリストのlenより大きい場合はどうなるかを「正確に」言っていますか? –

答えて

1

list.insert(i, x)

所定の位置にアイテムを挿入します。最初の 引数は、挿入する前の要素のインデックスです。つまり、 a.insert(0、x)がリストの先頭に挿入され、a.insert(len(a)、 x)はa .append(x)。

言及されていない点は、範囲外のインデックスを与えることができ、Pythonがリストに追加されることです。

あなたはPython implementationあなたが挿入しins1機能で次を見つけるに掘る場合は、次のリストの長さに

if (where > n) 
    where = n; 

だから、基本的にPythonが意志最大索引アウト。

+0

私は裁判でそれを手に入れましたが、確かに実装を読むつもりです。 –

+0

確認済みです。インデックスが大きすぎると、Pythonはそれを長さに戻します –

関連する問題