Hvordan erstatte verdier i en liste i Python?
I denne artikkelen skal vi se hvordan du erstatter verdien i en liste ved hjelp av Python. Vi kan erstatte verdier i listen på serval-måter. Nedenfor er metodene for å erstatte verdier i listen.
- Bruker listeindeksering
- Brukes for loop
- Bruker while-løkke
- Bruker lambda-funksjon
- Bruker listeskjæring
Metode 1: Bruke listeindeksering
Vi kan få tilgang til elementer i listen ved hjelp av indeksering. Dette er den enkleste og enkleste metoden for å erstatte verdier i en liste i python. Hvis vi ønsker å erstatte det første elementet på listen kan vi bruke indeks 0. Her nedenfor er indeksen en indeks for elementet som vi ønsker å erstatte og new_value er en verdi som skal erstatte den gamle verdien i listen.
Syntaks: l[indeks]=ny_verdi
Kode:
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)> |
Produksjon:
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Pant']
Metode 2: Bruke For Loop
Vi kan bruke for loop for å iterere over listen og erstatte verdier i listen. Anta at vi ønsker å erstatte 'Hardik' og 'Pant' fra listen med 'Shardul' og 'Ishan'. Vi finner først verdier i listen ved å bruke for loop og if condition og erstatter den deretter med den nye verdien.
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)> |
Produksjon:
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
Metode 3: Bruke Mens Loop
Vi kan også bruke en while-løkke for å erstatte verdier i listen. Mens loop gjør det samme som for loop. I while-løkken først definerer vi en variabel med verdi 0 og itererer over listen. Hvis verdien samsvarer med verdien vi ønsker å erstatte, erstatter vi den med den nye verdien.
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)> |
Produksjon:
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
Metode 4: Bruke Lambda funksjon
I denne metoden bruker vi lambda og kartfunksjon for å erstatte verdien i listen. map() er en innebygd funksjon i python for å iterere over en liste uten å bruke noen loop-setning. En lambda er en anonym funksjon i python som inneholder et enkelt linjeuttrykk. Her ga vi ett uttrykk som betingelse for å erstatte verdi. Her bytter vi ut ‘Pant’ med ‘Ishan’ i lambda-funksjonen. Ved å bruke list()-funksjonen konverterer vi kartobjektet til listen.
Syntaks: l=liste(kart(lambda x: x.erstatt('gammel_verdi','ny_verdi'),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)> |
Produksjon:
['Hardik', 'Rohit', 'Rahul', 'Virat', 'Ishan']
Metode 5: Bruke Liste skjæring
Python lar oss skjære inn i en liste. Slicing gir oss tilgang til noen deler av listen. Vi kan erstatte verdier inne i listen ved hjelp av slicing. Først finner vi indeksen til variabelen som vi ønsker å erstatte og lagrer den i variabel 'i'. Deretter erstatter vi det elementet med en ny verdi ved å bruke listeskjæring. Anta at vi ønsker å erstatte 'Rahul' med 'Shikhar', så finner vi først indeksen til 'Rahul' og deretter skjærer listen og fjerner 'Rahul' og legger til 'Shikhar' på det stedet.
Syntaks: l=l[:indeks]+['ny_verdi']+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)> |
Produksjon:
['Hardik', 'Rohit', 'Shikhar', 'Virat', 'Pant']
Metode 6: Bruke functools.reduce metode:
Algoritme:
- Importer redusere metode fra functools.
- initialisere testlisten.
- Bruk reduseringsmetode på testlisten som sjekker for elementet i listen og erstatter det med ny verdi.
- Skriv ut ny liste.
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)> |
Produksjon
['Hardik', 'Rohit', 'Shikhar', 'Virat', 'Pant']
Tidskompleksitet: O(N), hvor n er lengden på inndatalisten.
Ekstra plass: O(k), der k er lengden på den nye listen med den nye verdien.