Python のリストで要素を置換する方法
Azaz Farooq
2023年10月10日
- Python のリスト要素の検索と置換をリストインデクシングの方法で行う
-
Python のリストの要素を
for
ループメソッドで検索して置換する - Python のリスト要素をリスト内包表記メソッドで検索して置換する
-
Python のリスト要素を
map
メソッドで検索して置換する - 備考
Python リストの要素を置換する方法はいくつかあります。Python リストの要素をインデックス化する方法、for
ループ、map
関数、リスト内包の方法などがあります。
この記事では、上記の Python リストの要素を見つけて置換する方法について説明します。
Python のリスト要素の検索と置換をリストインデクシングの方法で行う
下のリストを例にしてみましょう。
my_list = [5, 10, 7, 5, 6, 8, 5, 15]
インデックス 0
の要素を 5 から 20 に変更します。
例のコードは以下のようになります。
my_list = [5, 10, 7, 5, 6, 8, 5, 15]
my_list[0] = 20
print(my_list)
出力:
[20, 10, 7, 5, 6, 8, 5, 15]
Python のリストの要素を for
ループメソッドで検索して置換する
このメソッドでは enumerate()
関数を用います。これはカウンタと要素を含む enumerate
オブジェクトを返します。関数 enumerate()
と for
ループを組み合わせると、enumerate
オブジェクトを繰り返し処理し、インデックスと要素を一緒に取得します。
コードは以下のようになります。
my_list = [5, 10, 7, 5, 6, 8, 5, 15]
for index, value in enumerate(my_list):
if value == 5:
my_list[index] = 9
print(my_list)
出力:
[9, 10, 7, 9, 6, 8, 9, 15]
Python のリスト要素をリスト内包表記メソッドで検索して置換する
この方法では、古いリストに事前に定義された条件を適用して新しいリストを生成します。
構文は以下の通りです。
my_list = [5, 10, 7, 5, 6, 8, 5, 15]
[9 if value == 5 else value for value in my_list]
print(my_list)
出力:
[9, 10, 7, 9, 6, 8, 9, 15]
Python のリスト要素を map
メソッドで検索して置換する
このメソッドは、2 番目のリストのエントリを 1 番目のリストの要素のインデックスで変更します。
コードは以下の通りです。
list_1 = [5, 10, 7]
list_2 = [7, 10, 7, 5, 7, 5, 10]
ent = {k: i for i, k in enumerate(list_1)}
result = list(map(ent.get, list_2))
print("list2 after replacement is:", result)
出力:
list2 after replacement is: [2, 1, 2, 0, 2, 0, 1]
備考
- リストの中の 1つの要素を置換する場合には、リストインデックス法が良いです。
- リスト内の複数の要素を選択的に置換する場合には、リスト内包表記が適しています。
- ループ法は実行時間とメモリが多くなるのでお勧めしません。