ゼロからのPython入門講座オブジェクトとリスト リストの操作

Pythonの型とオブジェクトリストリストの操作while文を使ったリストのループ処理for文によるループ

リストには、要素の追加・削除・置き換えなどの操作を行えます。

要素の挿入

リストに要素を追加するときには、リストの メソッド である insert() を使用します。

insert() メソッドには、次の引数を指定します。

リストオブジェクト.insert(挿入位置, オブジェクト)

挿入位置には、オブジェクトを挿入するインデックス値を指定します。挿入位置に 0 を指定すると、リストの先頭(0番目)に指定したオブジェクトを挿入します。

次の例は、文字列の 'A', 'B', 'C' を要素とするリストオブジェクトの先頭に、整数の 999 を挿入します。

In [32]:
values = ['A', 'B', 'C']
print("修正前:", values)

values.insert(0, 999)
print("修正後:", values)
修正前: ['A', 'B', 'C']
修正後: [999, 'A', 'B', 'C']

もともと先頭(0番目)にあった要素は1番目に移動し、もとの1番目の要素は2番目へ移動し、以後、すべての要素は一つずつ後ろにずれていきます。

挿入位置として、インデックスの最大値以上の値を指定すると、リストの末尾に要素を追加します。次の例は、次の例は、文字列の 'A', 'B', 'C' を要素とするリストの末尾に、整数の 999 を挿入します。

In [36]:
values = ['A', 'B', 'C']
print("修正前:", values)

values.insert(3, 999)
print("修正後:", values)
修正前: ['A', 'B', 'C']
修正後: ['A', 'B', 'C', 999]

要素の置き換え

登録済みの要素を別の要素に置き換えるときは、次のように記述します。

リストオブジェクト[インデックス] = 

変数 の代入文とおなじ形式ですね。

次の例は、文字列の 'A', 'B', 'C' を要素とするリストオブジェクトの、1番目に登録されている 'B' を、別の値に置き換えています。

In [37]:
values = ['A', 'B', 'C']
print("修正前:", values)

values[1] = 'abc'
print("修正後:", values)
修正前: ['A', 'B', 'C']
修正後: ['A', 'abc', 'C']

リストオブジェクトの一番目の要素(values[1])の、もともとの値は 'B' ですが、

values[1] = 'abc'

という代入文で、一番目の要素を文字列 'abc' に置き換わっています。

代入文の左辺に指定できるインデックス値は、リストオブジェクトの 最後のインデックス値 までです。無効なインデックス値を指定すると、次のようなエラーになります。

In [1]:
values = ['A', 'B', 'C']
values[3] = "D"
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-1-e572b901a29a> in <module>
      1 values = ['A', 'B', 'C']
----> 2 values[3] = "D"

IndexError: list assignment index out of range

この例では、リストオブジェクト 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)
修正前: ['A', 'B', 'C', 'D']
修正後: ['A', 'C', 'D']
del values[1]

という del 文は、1番目の要素 'B' を削除します。もともと2番目にあった要素 'C' は1番目に移動し、もとの3番目の要素は2番目へ、以後、すべての要素は一つずつ前にずれていきます。

del 文で指定できる要素のインデックスは、要素の置き換え と同じように、リストオブジェクトの 最後のインデックス値 までです。無効なインデックス値を指定すると、エラーになります。

Copyright © 2001-2023 python.jp Privacy Policy python_japan
Amazon.co.jpアソシエイト
Amazonで他のPython書籍を検索