Kako zamenjati vrednosti na seznamu v Pythonu?

V tem članku si bomo ogledali, kako zamenjati vrednost na seznamu s Pythonom. Vrednosti na seznamu lahko zamenjamo na serval načine. Spodaj so metode za zamenjavo vrednosti na seznamu.

  • Uporaba indeksiranja seznama
  • Uporaba zanke for
  • Uporaba zanke while
  • Uporaba lambda funkcije
  • Uporaba rezanja seznama

1. način: Uporaba indeksiranja seznama

Do elementov seznama lahko dostopamo z indeksiranjem. To je najenostavnejša in najlažja metoda za zamenjavo vrednosti na seznamu v pythonu. Če želimo zamenjati prvi element seznama, lahko uporabimo indeks 0. Tu spodaj je indeks indeks elementa, ki ga želimo zamenjati, nova_vrednost pa je vrednost, ki naj nadomesti staro vrednost na seznamu.

Sintaksa: l[indeks]=nova_vrednost

Koda:

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)>

Izhod:

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

2. način: Uporaba Za Loop

Za iteracijo po seznamu in zamenjavo vrednosti na seznamu lahko uporabimo zanko for. Recimo, da želimo s seznama zamenjati »Hardik« in »Pant« s »Shardul« in »Ishan«. Najprej poiščemo vrednosti na seznamu z uporabo zanke for in pogoja if, nato pa jo nadomestimo z novo vrednostjo.

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)>

Izhod:

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

3. način: Uporaba Medtem ko Loop

Za zamenjavo vrednosti na seznamu lahko uporabimo tudi zanko while. Zanka While opravlja enako delo kot zanka for. V zanki while najprej definiramo spremenljivko z vrednostjo 0 in iteriramo po seznamu. Če se vrednost ujema z vrednostjo, ki jo želimo zamenjati, jo zamenjamo z novo vrednostjo.

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)>

Izhod:

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

4. način: Uporaba Lambda funkcija

Pri tej metodi uporabljamo lambda in funkcijo preslikave za zamenjavo vrednosti na seznamu. map() je v python vgrajena funkcija za ponavljanje po seznamu brez uporabe stavka zanke. Lambda je anonimna funkcija v pythonu, ki vsebuje enovrstični izraz. Tukaj smo dali en izraz kot pogoj za zamenjavo vrednosti. Tukaj zamenjamo 'Pant' z 'Ishan' v funkciji lambda. Nato s funkcijo list() pretvorimo objekt zemljevida v seznam.

Sintaksa: l=seznam(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)>

Izhod:

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

5. način: Uporaba Rezanje seznama

Python nam omogoča rezanje znotraj seznama. Rezanje nam omogoča dostop do nekaterih delov seznama. Vrednosti znotraj seznama lahko zamenjamo z rezanjem. Najprej poiščemo indeks spremenljivke, ki jo želimo zamenjati, in jo shranimo v spremenljivko 'i'. Nato ta element zamenjamo z novo vrednostjo z uporabo rezanja seznama. Recimo, da želimo zamenjati »Rahul« s »Shikhar«, potem pa najprej poiščemo indeks »Rahul«, nato naredimo razrez seznama in odstranimo »Rahul« ter dodamo »Shikhar« na tem mestu.

Sintaksa: l=l[:indeks]+['nova_vrednost']+l[indeks+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)>

Izhod:

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

6. način: Uporaba functools.reduce metoda:

Algoritem:

  • Uvozite metodo zmanjšanja iz functools.
  • inicializirajte testni seznam.
  • Na preizkusnem seznamu uporabite metodo zmanjšanja, ki preveri element na seznamu in ga nadomesti z novo vrednostjo.
  • Natisnite nov seznam.

Python




# 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)>

Izhod

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

Časovna zahtevnost: O(N), kjer je n dolžina vhodnega seznama.
Pomožni prostor: O(k), kjer je k dolžina novega seznama z novo vrednostjo.