In [32]:
values = ['A', 'B', 'C']
print("修正前:", values)
values.insert(0, 999)
print("修正後:", values)
もともと先頭(0番目)にあった要素は1番目に移動し、もとの1番目の要素は2番目へ移動し、以後、すべての要素は一つずつ後ろにずれていきます。
挿入位置として、インデックスの最大値以上の値を指定すると、リストの末尾に要素を追加します。次の例は、次の例は、文字列の 'A'
, 'B'
, 'C'
を要素とするリストの末尾に、整数の 999
を挿入します。
In [36]:
values = ['A', 'B', 'C']
print("修正前:", values)
values.insert(3, 999)
print("修正後:", values)
In [37]:
values = ['A', 'B', 'C']
print("修正前:", values)
values[1] = 'abc'
print("修正後:", values)
リストオブジェクトの一番目の要素(values[1]
)の、もともとの値は 'B'
ですが、
values[1] = 'abc'
という代入文で、一番目の要素を文字列 'abc'
に置き換わっています。
代入文の左辺に指定できるインデックス値は、リストオブジェクトの 最後のインデックス値 までです。無効なインデックス値を指定すると、次のようなエラーになります。
In [1]:
values = ['A', 'B', 'C']
values[3] = "D"
この例では、リストオブジェクト values
の最大インデックス値は 2
ですが、代入文のインデックスとして 3
を指定しているために IndexError
というエラーが発生しています。
要素の削除¶
リストオブジェクトに登録されている要素を削除するときには、del
文を使います。
del リストオブジェクト[インデックス]
リストオブジェクトから、指定したインデックスの要素を削除します。次の例は、文字列の 'A'
, 'B'
, 'C'
を要素とするリストオブジェクトの、1番目に登録されている 'B'
を 削除します。
In [39]:
values = ['A', 'B', 'C', 'D']
print("修正前:", values)
del values[1]
print("修正後:", values)
del values[1]
という del
文は、1番目の要素 'B'
を削除します。もともと2番目にあった要素 'C'
は1番目に移動し、もとの3番目の要素は2番目へ、以後、すべての要素は一つずつ前にずれていきます。
del
文で指定できる要素のインデックスは、要素の置き換え と同じように、リストオブジェクトの 最後のインデックス値 までです。無効なインデックス値を指定すると、エラーになります。