Como substituir um item em uma lista python ?

As listas são estruturas de dados atraentes e versáteis. Aqui veremos algumas maneiras diferentes de substituir itens em uma lista em python.

Usando a indexação de lista

Os elementos da lista podem ser facilmente acessados com a ajuda da indexação. Este é o método mais básico e fácil de acessar os elementos da lista. Como todos os elementos de uma lista são armazenados de forma ordenada, podemos recuperar seus elementos sequencialmente. O primeiro elemento é armazenado no índice 0 e o último elemento é armazenado no índice 'len(lista)-1'.



lista = ['Angola', 'Brazil', 'Portugal', 'India', 'Canada']
lista[2] = 'Alemanha'
print(lista)


Saída:-----------------------------

['Angola', 'Brazil', 'Alemanha', 'India', 'Canada']


Loop usando for loop

Também podemos executar um loop for para iterar sobre os itens da lista. Quando uma determinada condição for cumprida dentro do loop for, substituiremos esse item da lista usando a indexação.



lista = ['Angola', 'Brazil', 'Portugal', 'India', 'Canada']

for i in range(len(lista)):
  if lista[i] == 'India':
    lista[i] = 'Argentina'

print(lista)


Saída:-----------------------------

['Angola', 'Brazil', 'Alemanha', 'India', 'Canada']

Usando compreensão de lista

Compreensão de lista em python é um pedaço de código compacto. Usando a compreensão de lista, podemos gerar novas sequências a partir de sequências já existentes. Em vez de escrever um bloco inteiro de código para executar um loop for ou um loop if-else, podemos escrever um código de linha única para o mesmo.


Consiste na expressão que deve ser impressa na nova lista, na instrução loop e na lista original da qual os novos valores serão obtidos.


Usaremos a compreensão de lista para anexar a string ‘color’ a todos os elementos da lista de minha_lista. Vamos substituir os valores antigos pelos valores atualizados.


 

 minha_lista = ['Angola', 'Brazil', 'Portugal', 'India', 'Canada']

 minha_lista = [(item+' pais') for item in minha_lista ]

 print(minha_lista)

 


Saída:-----------------------------

['Angola pais', 'Brazil pais', 'Portugal pais', 'India pais', 'Canada pais']

Usando map e função lambda


Map() é uma função embutida em python usando a qual podemos iterar sobre uma sequência iterável sem ter que escrever uma instrução de loop.


A sintaxe do mapa é:

map(função, iterável)


Aqui, cada valor dentro do iterável será passado para uma função, e a função map() produzirá o valor de retorno da função interna. Dentro da função map(), pegamos uma função lambda como o primeiro argumento.


Uma função lambda é uma função anônima que contém uma expressão de linha única. Pode ter qualquer número de argumentos, mas apenas uma expressão pode ser avaliada. Aqui, a função lambda anexará a string ‘pais’ para todos os itens presentes na lista e retornará o novo valor. Em seguida, usando a função list(), converteremos o objeto map retornado pela função map() em uma lista.


 

minha_lista = ['Angola', 'Brazil', 'Portugal', 'India', 'Canada']

minha_lista = list(map(lambda item: ('pais ' + item), minha_lista))

print(minha_lista)

 


Saída:-----------------------------

['pais Angola', 'pais Brazil', 'pais Portugal', 'pais India', 'pais Canada']

Usando um loop while

Também podemos ter um loop while para substituir o item em uma lista em python. Tomaremos uma variável 'i' que será inicialmente definida como zero. O loop while deve ser executado enquanto o valor de ‘i’ for menor que o comprimento da minha_lista

Devemos usar o método replace() para substituir o item da lista 'Portugal' por 'Argentina'. A variável 'i' deve ser incrementada no final do loop.


 

minha_lista = ['Angola', 'Brazil', 'Portugal', 'India', 'Canada']

i = 0

while i < len(minha_lista):

  minha_lista[i].replace('Portugal','Argentina')

  i = i + 1

print(minha_lista)

 


Saída:-----------------------------

['Angola', 'Brazil', 'Potugal', 'India', 'Canada']

Usando fatiamento de lista

Também podemos realizar o fatiamento dentro de uma lista. O uso de fatiamento nos permite acessar apenas uma determinada parte de uma lista.


A sintaxe da lista é:

Lista[ Início : Fim : Salto ]


Usando o fatiamento de lista, podemos substituir um determinado item dentro de uma lista. Primeiro, devemos armazenar o índice do item a ser substituído em uma variável chamada 'índice'. Em seguida, usando o fatiamento de lista, substituiremos esse item por um novo valor.


 

minha_lista = ['Angola', 'Brazil', 'Portugal', 'India', 'Canada']

index = minha_lista.index('Portugal')

minha_lista = minha_lista[:index] + ['Argentina'] + minha_lista[index+1:]

 

print(minha_lista)


Saída:-----------------------------

['Angola', 'Brazil', 'Argentina', 'India', 'Canada']

Substituindo o item da lista usando numpy

Também podemos substituir um item de lista usando a biblioteca numpy do python. Primeiro, vamos converter a lista em um array numpy. Em seguida, usando a função where() do numpy, especificamos uma condição de acordo com a qual substituiremos o valor. Devemos substituir o valor 'Portugal' pela 'Argentina'. Caso contrário, o valor será o mesmo.


 

import numpy as np

 

minha_lista = ['Angola', 'Brazil', 'Portugal', 'India', 'Canada']

minha_lista = np.array(minha_lista)

minha_lista = np.where(minha_lista == 'Portugal', 'Argentina', minha_lista)

print(minha_lista)

 


Saída:-----------------------------

['Angola', 'Brazil', 'Argentina', 'India', 'Canada']


Qual é a maneira de substituir itens em uma lista?

Podemos substituir valores de uma lista, Usando compreensão de lista, função map-lambda, função de substituição, etc., podemos realizar a substituição in-loco de itens de lista.