logo

Jak nahradit hodnoty v seznamu v Pythonu?

V tomto článku se podíváme na to, jak nahradit hodnotu v seznamu pomocí Pythonu. Hodnoty v seznamu můžeme nahradit servalovými způsoby. Níže jsou uvedeny způsoby nahrazení hodnot v seznamu.

  • Použití indexování seznamu
  • Použití smyčky for
  • Použití while smyčky
  • Použití funkce lambda
  • Použití dělení seznamu

Metoda 1: Použití indexování seznamu

K položkám seznamu můžeme přistupovat pomocí indexování. Toto je nejjednodušší a nejjednodušší způsob, jak nahradit hodnoty v seznamu v pythonu. Pokud chceme nahradit první položku seznamu, můžeme použít index 0. Zde níže je index indexem položky, kterou chceme nahradit, a nová_hodnota je hodnota, která by měla nahradit starou hodnotu v seznamu.



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ýstup:

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

Metoda 2: Použití Pro Loop

Můžeme použít cyklus for k iteraci seznamu a nahrazení hodnot v seznamu. Předpokládejme, že chceme nahradit ‚Hardik‘ a ‚Pant‘ ze seznamu ‚Shardul‘ a ‚Ishan‘. Nejprve najdeme hodnoty v seznamu pomocí podmínky cyklu for a if a poté je 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ýstup:

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

Metoda 3: Použití Zatímco smyčka

K nahrazení hodnot v seznamu můžeme také použít cyklus while. Smyčka While funguje stejně jako smyčka for. V cyklu while nejprve definujeme proměnnou s hodnotou 0 a iterujeme seznam. Pokud se hodnota shoduje s hodnotou, kterou chceme nahradit, nahradíme ji 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ýstup:

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

Metoda 4: Použití Funkce lambda

V této metodě používáme lambda a mapovací funkci k nahrazení hodnoty v seznamu. map() je vestavěná funkce v pythonu pro iteraci seznamu bez použití jakéhokoli příkazu smyčky. Lambda je anonymní funkce v pythonu, která obsahuje jednořádkový výraz. Zde jsme dali jeden výraz jako podmínku pro nahrazení hodnoty. Zde nahradíme „Pant“ za „Ishan“ ve funkci lambda. Poté pomocí funkce list() převedeme objekt mapy na seznam.

Syntax: l=seznam(mapa(lambda x: x.nahradit(‘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ýstup:

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

Metoda 5: Použití Krájení seznamu

Python nám umožňuje krájet uvnitř seznamu. Slicování nám umožňuje přístup k některým částem seznamu. Hodnoty uvnitř seznamu můžeme nahradit pomocí slicingu. Nejprve najdeme index proměnné, kterou chceme nahradit, a uložíme ji do proměnné ‚i‘. Poté tuto položku nahradíme novou hodnotou pomocí dělení seznamu. Předpokládejme, že chceme nahradit ‚Rahul‘ výrazem ‚Shikhar‘, pak nejprve najdeme index ‚Rahul‘ a poté provedeme krájení seznamu a odstraníme ‚Rahul‘ a přidáme ‚Shikhar‘ na toto místo.

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ýstup:

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

Metoda 6: Použití functools.snížit metoda:

Algoritmus:

  • Importovat metodu snížení z functools.
  • inicializovat seznam testů.
  • V seznamu testů použijte metodu snížení, která zkontroluje prvek v seznamu a nahradí jej novou hodnotou.
  • Tisk nového seznamu.

Krajta




rozdíl mezi dvěma řetězci 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ýstup

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

Časová složitost: O(N), kde n je délka vstupního seznamu.
Pomocný prostor: O(k), kde k je délka nového seznamu s novou hodnotou.