Python のリスト (list) - 要素の変更・追加
ここでは Python のリスト (list) について基本的なことと、リストの要素の変更と追加の方法についてご説明します。
Python のリスト要素にアクセスする
リストの中のひとつひとつのデータのことは要素といい、インデックスを指定することによって、各要素にアクセスすることができます。
Python のインデックスは 1 からではなく、0 から始まります。 1 番最初が 0、2 番目が 1、3 番目が 2、、となります。
例えば、ひとつ目と 3 つ目の要素を取得したい時は次のようにします。
names = [ "Tanaka", "Suzuki", "Sato", "Yamada"]
print(names[0])
print(names[2])
実行結果です。
Tanaka
Sato
インデックスにマイナスの値を指定することによって、リストの最後から数えた要素を取得することもできます。
-1 が一番最後の要素で、-2 が最後から 2 番目、-3 が最後から 3 番目、、というような感じです。
names = [ "Tanaka", "Suzuki", "Sato", "Yamada"]
print(names[-1])
print(names[-2])
実行結果です。
Yamada
Sato
Python のリストの値を変更する
Python のリストの値の変更するには、インデックスを指定してその要素に新しい値を代入します。
例えば、2 番目の要素を "Yamamoto" に変更したい時は次のようにします。
names = [ "Tanaka", "Suzuki", "Sato", "Yamada"]
print(names)
names[1] = "Yamamoto"
print(names)
実行結果は次のようになり、2 番目が "Yamamoto" に変更されていますね。
['Tanaka', 'Suzuki', 'Sato', 'Yamada']
['Tanaka', 'Yamamoto', 'Sato', 'Yamada']
append() メソッドでリストに要素を追加する
Python のリストに要素を追加するには、リストの一番最後に追加する方法と、インデックスを指定して、その場所に追加する方法があります。
リストの一番最後に追加するには append() というメソッドを使います。
空っぽのリストを定義して、append() を使って要素を三つ追加してみます。
names = []
names.append("Tanaka")
print(names)
names.append("Suzuki")
print(names)
names.append("Sato")
print(names)
実行結果は次のようになり、値がどんどんリストの後ろに追加されていってますね。
['Tanaka']
['Tanaka', 'Suzuki']
['Tanaka', 'Suzuki', 'Sato']
insert() メソッドでリストに要素を追加する
Python のリストにインデックスを指定して、その場所に要素を追加するには、insert() という名前のメソッドを使います。
例えば、2 番目に新しい値を挿入したい場合は次のようにします。
names = [ "Tanaka", "Suzuki", "Sato", "Yamada"]
print(names)
names.insert(1, "Ishikawa")
print(names)
実行結果は次のようになり、2 番目に "Ishikawa" が挿入されて、残りの要素は後ろにずれています。
['Tanaka', 'Suzuki', 'Sato', 'Yamada']
['Tanaka', 'Ishikawa', 'Suzuki', 'Sato', 'Yamada']
範囲指定した要素を持つ新しいリストを取得する
: を使って、list[開始のインデックス:終了のインデックス]のように範囲を指定して、その要素を持つ新しいリストを取得することができます。
開始、終了のインデックス共に必須ではなく、開始のインデックスを指定しなかった場合は、0 からになります。終了のインデックスを指定しなかった場合は、最後までになります。
終了に指定したインデックスの要素は新しいリストに含まれません。
例えば、list[1:4] と指定した場合は、新しいリストにインデックスが 1 から 3 までの要素が含まれます。
list[:3] と指定した場合は、新しいリストに最初(0) からインデックスが 2 の要素までが含まれます。
list[1:] と指定した場合は、新しいリストにインデックスが 1 から最後の要素までが含まれます。
実際に試してみましょう。
names = [ "Tanaka", "Suzuki", "Sato", "Yamada", "Kato"]
print(names[1:4])
print(names[:3])
print(names[1:])
実行結果は次のようになり、それぞれ上でご説明した通りのインデックスの要素を持つリストが出力されていますね。
['Suzuki', 'Sato', 'Yamada']
['Tanaka', 'Suzuki', 'Sato']
['Suzuki', 'Sato', 'Yamada', 'Kato']
以上、Python のリスト (list) の基本と、要素の変更と追加の方法についてご説明しました。