logo

Come sostituire i valori in un elenco in Python?

In questo articolo vedremo come sostituire il valore in una List utilizzando Python. Possiamo sostituire i valori nell'elenco in diversi modi. Di seguito sono riportati i metodi per sostituire i valori nell'elenco.

  • Utilizzo dell'indicizzazione degli elenchi
  • Utilizzo del ciclo for
  • Utilizzo del ciclo while
  • Utilizzando la funzione lambda
  • Utilizzando l'affettamento dell'elenco

Metodo 1: utilizzo dell'indicizzazione degli elenchi

Possiamo accedere agli elementi dell'elenco utilizzando l'indicizzazione. Questo è il metodo più semplice e facile per sostituire i valori in un elenco in Python. Se vogliamo sostituire il primo elemento dell'elenco possiamo di utilizzare l'indice 0. Qui sotto, l'indice è un indice dell'elemento che vogliamo sostituire e il new_value è un valore che dovrebbe sostituire il vecchio valore nell'elenco.

Sintassi: l[indice]=nuovo_valore



Codice:

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

>

>

Produzione:

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

Metodo 2: utilizzo Per Ciclo

Possiamo usare il ciclo for per scorrere l'elenco e sostituire i valori nell'elenco. Supponiamo di voler sostituire 'Hardik' e 'Pant' dall'elenco con 'Shardul' e 'Ishan'. Per prima cosa troviamo i valori nell'elenco utilizzando il ciclo for e la condizione if, quindi sostituiamoli con il nuovo valore.

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

>

>

Produzione:

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

Metodo 3: utilizzo Mentre Ciclo

Possiamo anche usare un ciclo while per sostituire i valori nell'elenco. Il ciclo while fa lo stesso lavoro del ciclo for. Nel ciclo while innanzitutto definiamo una variabile con valore 0 e iteriamo sull'elenco. Se il valore corrisponde al valore che vogliamo sostituire, lo sostituiamo con il nuovo valore.

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

>

>

Produzione:

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

Metodo 4: utilizzo Funzione Lambda

In questo metodo utilizziamo lambda e la funzione map per sostituire il valore nell'elenco. map() è una funzione incorporata in Python per scorrere un elenco senza utilizzare alcuna istruzione di loop. Una lambda è una funzione anonima in Python che contiene un'espressione a riga singola. Qui abbiamo fornito un'espressione come condizione per sostituire il valore. Qui sostituiamo 'Pant' con 'Ishan' nella funzione lambda. Quindi utilizzando la funzione list() convertiamo l'oggetto mappa nella lista.

Sintassi: l=list(map(lambda x: x.replace('vecchio_valore','nuovo_valore'),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)>

>

>

Produzione:

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

Metodo 5: utilizzo Elenco affettamenti

Python ci permette di eseguire lo slicing all'interno di una lista. Lo slicing ci consente di accedere ad alcune parti dell'elenco. Possiamo sostituire i valori all'interno dell'elenco utilizzando l'affettamento. Innanzitutto, troviamo l'indice della variabile che vogliamo sostituire e memorizzarlo nella variabile 'i'. Quindi, sostituiamo l'elemento con un nuovo valore utilizzando l'affettamento dell'elenco. Supponiamo di voler sostituire 'Rahul' con 'Shikhar', quindi troviamo prima l'indice di 'Rahul' e poi eseguiamo l'affettamento dell'elenco e rimuoviamo 'Rahul' e aggiungiamo 'Shikhar' in quel posto.

Sintassi: l=l[:indice]+['nuovo_valore']+l[indice+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)>

>

>

Produzione:

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

Metodo 6: utilizzo functools.reduce metodo:

Algoritmo:

  • Importa il metodo di riduzione da functools.
  • inizializzare l'elenco dei test.
  • Utilizza il metodo di riduzione sull'elenco di test che controlla l'elemento nell'elenco e lo sostituisce con un nuovo valore.
  • Stampa nuovo elenco.

Pitone




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

>

>

Produzione

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

Complessità temporale: O(N), dove n è la lunghezza della lista di input.
Spazio ausiliario: O(k), dove k è la lunghezza della nuova lista con il nuovo valore.