Ako nahradiť hodnoty v zozname v Pythone?
V tomto článku sa pozrieme na to, ako nahradiť hodnotu v zozname pomocou Pythonu. Hodnoty v zozname môžeme nahradiť servalovými spôsobmi. Nižšie sú uvedené spôsoby nahradenia hodnôt v zozname.
- Použitie indexovania zoznamov
- Použitie slučky for
- Použitie while slučky
- Použitie funkcie lambda
- Použitie krájania zoznamu
Metóda 1: Použitie indexovania zoznamu
K položkám zoznamu môžeme pristupovať pomocou indexovania. Toto je najjednoduchší a najjednoduchší spôsob nahradenia hodnôt v zozname v pythone. Ak chceme nahradiť prvú položku zoznamu, môžeme použiť index 0. Nižšie je index indexom položky, ktorú chceme nahradiť a nová_hodnota je hodnota, ktorá by mala nahradiť starú hodnotu v zozname.
Syntax: l[index]=nová_hodnota
kód:
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)> |
Výkon:
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Pant']
Metóda 2: Použitie Pre Loop
Na iteráciu zoznamu a nahradenie hodnôt v zozname môžeme použiť cyklus for. Predpokladajme, že chceme nahradiť „Hardik“ a „Pant“ zo zoznamu slovami „Shardul“ a „Ishan“. Najprv nájdeme hodnoty v zozname pomocou podmienky cyklu for a if a potom ich nahradíme novou hodnotou.
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)> |
Výkon:
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
Metóda 3: Použitie Kým slučka
Na nahradenie hodnôt v zozname môžeme použiť aj cyklus while. Kým slučka funguje rovnako ako slučka for. V cyklu while najprv definujeme premennú s hodnotou 0 a iterujeme zoznam. Ak sa hodnota zhoduje s hodnotou, ktorú chceme nahradiť, nahradíme ju novou hodnotou.
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)> |
Výkon:
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
Metóda 4: Použitie Funkcia lambda
V tejto metóde používame funkciu lambda a map na nahradenie hodnoty v zozname. map() je vstavaná funkcia v pythone na iteráciu zoznamu bez použitia akéhokoľvek príkazu slučky. Lambda je anonymná funkcia v pythone, ktorá obsahuje jeden riadkový výraz. Tu sme dali jeden výraz ako podmienku na nahradenie hodnoty. Tu nahrádzame „Pant“ za „Ishan“ vo funkcii lambda. Potom pomocou funkcie list() konvertujeme objekt mapy na zoznam.
Syntax: l=zoznam(mapa(lambda x: x.replace(‘stará_hodnota’,’nová_hodnota’),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)> |
Výkon:
['Hardik', 'Rohit', 'Rahul', 'Virat', 'Ishan']
Metóda 5: Použitie Krájanie zoznamu
Python nám umožňuje vykonávať krájanie vnútri zoznamu. Krájanie nám umožňuje prístup k niektorým častiam zoznamu. Hodnoty v zozname môžeme nahradiť pomocou slicingu. Najprv nájdeme index premennej, ktorú chceme nahradiť a uložíme ju do premennej „i“. Potom túto položku nahradíme novou hodnotou pomocou segmentovania zoznamu. Predpokladajme, že chceme nahradiť „Rahul“ za „Shikhar“, potom najprv nájdeme index „Rahul“ a potom urobíme krájanie zoznamu a odstránime „Rahul“ a na toto miesto pridáme „Shikhar“.
Syntax: l=l[:index]+[‘nová_hodnota’]+l[index+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)> |
Výkon:
['Hardik', 'Rohit', 'Shikhar', 'Virat', 'Pant']
Metóda 6: Použitie functools.znížiť metóda:
Algoritmus:
- Importovať metódu redukcie z functools.
- inicializujte zoznam testov.
- Na testovacom zozname použite metódu redukcie, ktorá skontroluje prvok v zozname a nahradí ho novou hodnotou.
- Vytlačiť nový zoznam.
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)> |
Výkon
['Hardik', 'Rohit', 'Shikhar', 'Virat', 'Pant']
Časová zložitosť: O(N), kde n je dĺžka vstupu List.
Pomocný priestor: O(k), kde k je dĺžka nového zoznamu s novou hodnotou.