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.