Pythonリストの要素を更新する方法:インデックス指定による代入

Pythonのリスト(list)は「ミュータブル(変更可能)」なデータ型です。これは、リストを一度作成した後でも、その中身(要素)の値を自由に変更できることを意味します。

データベースから取得したデータの状態を更新したり、設定リストの一部を書き換えたりする際に、この操作は不可欠です。

この記事では、リスト内の特定の要素を新しい値で更新(上書き)する基本的な方法を解説します。

目次

インデックスを指定した要素の更新

リストの要素を更新する最も基本的な方法は、**インデックス(位置番号)**を指定して、代入演算子(=)で新しい値を設定することです。

構文:

リスト変数[インデックス] = 新しい値

1. 正のインデックス(0から始まる)による更新

Pythonのインデックスは 0 から始まります。[0] は先頭、[1] は2番目の要素を指します。

例として、複数のサーバーのステータスを管理するリストを見てみましょう。

# サーバーのステータスリスト
server_statuses = ["Online", "Pending", "Offline", "Online"]
print(f"更新前: {server_statuses}")

# 2番目 (インデックス 1) の "Pending" を "Maintenance" に変更
server_statuses[1] = "Maintenance"

print(f"更新後: {server_statuses}")

実行結果:

更新前: ['Online', 'Pending', 'Offline', 'Online']
更新後: ['Online', 'Maintenance', 'Offline', 'Online']

インデックス 1 の位置にあった "Pending""Maintenance" に上書きされました。

2. 負のインデックス(-1から始まる)による更新

[-1](末尾)や [-2](末尾から2番目)といった負のインデックスも、参照時と同様に更新(代入)に使用できます。

server_statuses = ["Online", "Maintenance", "Offline", "Online"]
print(f"更新前: {server_statuses}")

# 末尾 (インデックス -1) の "Online" を "Error" に変更
server_statuses[-1] = "Error"

print(f"更新後: {server_statuses}")

実行結果:

更新前: ['Online', 'Maintenance', 'Offline', 'Online']
更新後: ['Online', 'Maintenance', 'Offline', 'Error']

注意点:IndexError

この方法は、あくまで既存のインデックスの値を「置き換える」操作です。

リストの範囲外(存在しないインデックス)に対して代入しようとすると IndexError が発生します。

server_statuses = ["Online", "Maintenance", "Offline", "Error"]
# リストの長さは 4 (インデックスは 0, 1, 2, 3)

# 存在しないインデックス 4 に代入しようとするとエラー
# server_statuses[4] = "New Server"
# IndexError: list assignment index out of range

新しい要素をリストの末尾に追加したい場合は、代入ではなく append() メソッド(server_statuses.append("New Server"))を使用します。

まとめ

  • Pythonリストの要素は、my_list[index] = new_value という構文で簡単に更新できます。
  • 0 から始まる正のインデックスと、[-1] から始まる負のインデックスの両方が使用可能です。
  • この操作は、既存の要素の「置き換え」であり、存在しないインデックスへの代入は IndexError となります。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次