この記事では、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 は新しい値を持つ新しいリストの長さです。