logo

Python でリスト内の値を置換するにはどうすればよいですか?

この記事では、Python を使用してリスト内の値を置換する方法を見ていきます。リスト内の値をさまざまな方法で置き換えることができます。リスト内の値を置換する方法は次のとおりです。

  • リストのインデックス作成の使用
  • for ループの使用
  • while ループを使用する
  • ラムダ関数の使用
  • リストスライスの使用

方法 1: リストのインデックス作成を使用する

インデックスを使用してリストの項目にアクセスできます。これは、Python でリスト内の値を置換する最も単純かつ簡単な方法です。リストの最初の項目を置き換えたい場合は、インデックス 0 を使用できます。以下では、インデックスは置き換えたい項目のインデックスであり、new_value はリスト内の古い値を置き換える値です。



構文: l[インデックス]=新しい値

コード:

Python3








# Replace Values in a List using indexing> # define list> l>=> [>'Hardik'>,>'Rohit'>,>'Rahul'>,>'Virat'>,>'Pant'>]> # replace first value> l[>0>]>=> 'Shardul'> # print list> print>(l)>

>

>

出力:

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Pant']>

方法 2: を使用する For ループ

for ループを使用してリストを反復処理し、リスト内の値を置き換えることができます。リストの「Hardik」と「Pant」を「Shardul」と「Ishan」に置き換えたいとします。まず for ループと if 条件を使用してリスト内の値を検索し、それを新しい値に置き換えます。

Python3




# Replace Values in a List using For Loop> # define list> l>=> [>'Hardik'>,>'Rohit'>,>'Rahul'>,>'Virat'>,>'Pant'>]> for> i>in> range>(>len>(l)):> ># replace hardik with shardul> >if> l[i]>=>=> 'Hardik'>:> >l[i]>=> 'Shardul'> ># replace pant with ishan> >if> l[i]>=>=> 'Pant'>:> >l[i]>=> 'Ishan'> # print list> print>(l)>

>

>

出力:

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']>

方法 3: を使用する While ループ

while ループを使用してリスト内の値を置き換えることもできます。 while ループは for ループと同じ処理を行います。まず while ループで、値 0 の変数を定義し、リストを反復処理します。値が置換したい値と一致する場合、それを新しい値に置き換えます。

Python3




# Replace Values in a List using While Loop> # define list> l>=> [>'Hardik'>,>'Rohit'>,>'Rahul'>,>'Virat'>,>'Pant'>]> i>=> 0> while> i <>len>(l):> ># replace hardik with shardul> >if> l[i]>=>=> 'Hardik'>:> >l[i]>=> 'Shardul'> ># replace pant with ishan> >if> l[i]>=>=> 'Pant'>:> >l[i]>=> 'Ishan'> >i>+>=> 1> # print list> print>(l)>

>

>

出力:

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']>

方法 4: を使用する ラムダ関数

このメソッドでは、ラムダ関数とマップ関数を使用してリスト内の値を置き換えます。 map() は、ループ ステートメントを使用せずにリストを反復処理する Python の組み込み関数です。ラムダは、単一行の式を含む Python の匿名関数です。ここでは、値を置き換える条件として 1 つの式を指定しました。ここでは、ラムダ関数の「Pant」を「Ishan」に置き換えます。次に list() 関数を使用して、マップ オブジェクトをリストに変換します。

構文: l=list(map(lambda x: x.replace(‘old_value’,’new_value’),l))

Python3




# Replace Values in a List using Lambda Function> # define list> l>=> [>'Hardik'>,>'Rohit'>,>'Rahul'>,>'Virat'>,>'Pant'>]> # replace Pant with Ishan> l>=> list>(>map>(>lambda> x: x.replace(>'Pant'>,>'Ishan'>), l))> # print list> print>(l)>

>

>

出力:

['Hardik', 'Rohit', 'Rahul', 'Virat', 'Ishan']>

方法 5: を使用する リストのスライス

Python を使用すると、リスト内でスライスを行うことができます。スライスにより、リストの一部にアクセスできるようになります。スライスを使用してリスト内の値を置き換えることができます。まず、置換する変数のインデックスを見つけて、変数「i」に保存します。次に、リスト スライスを使用して、その項目を新しい値に置き換えます。 「Rahul」を「Shikhar」に置き換えたいとします。最初に「Rahul」のインデックスを見つけてから、リストのスライスを実行して「Rahul」を削除し、その場所に「Shikhar」を追加します。

構文: l=l[:インデックス]+[‘新しい値’]+l[インデックス+1:]

Python3




# Replace Values in a List using Slicing> # define list> l>=> [>'Hardik'>,>'Rohit'>,>'Rahul'>,>'Virat'>,>'Pant'>]> # find the index of Rahul> i>=> l.index(>'Rahul'>)> # replace Rahul with Shikhar> l>=> l[:i]>+>[>'Shikhar'>]>+>l[i>+>1>:]> # print list> print>(l)>

>

>

出力:

['Hardik', 'Rohit', 'Shikhar', 'Virat', 'Pant']>

方法 6: を使用する functools.reduce 方法:

アルゴリズム:

  • functoolsからreduceメソッドをインポートします。
  • テストリストを初期化します。
  • テストリストでreduceメソッドを使用して、リスト内の要素をチェックし、新しい値に置き換えます。
  • 新しいリストを印刷します。

パイソン




Linuxファイルシステム
# Replace Values in a List using reduce> from> functools>import> reduce> # define list> l>=> [>'Hardik'>,>'Rohit'>,>'Rahul'>,>'Virat'>,>'Pant'>]> # replace Rahul with Shikhar> l>=> reduce>(>lambda> a, b : a>+> [>'Shikhar'>]>if> b>=>=> 'Rahul'> else> a>+> [b], l , [])> # print list> print>(l)>

>

>

出力

['Hardik', 'Rohit', 'Shikhar', 'Virat', 'Pant']>

時間計算量: O(N)。n は入力リストの長さです。
補助スペース: O(k)。ここで、k は新しい値を持つ新しいリストの長さです。