python3: substituir um dos itens sting duplicados em uma lista com outra string como:

votos
0

Há vários itens srting duplicados em minha lista. Eu quero mudar um desses itens com outro item string. Por exemplo:

a = ['b','c','d','b','b']

Eu quero mudar 'b' com índice 3 com 'x'

a = ['b','c','d','x','b']

Publicado 02/09/2018 em 05:16
fonte usuário
Em outras línguas...                            


2 respostas

votos
0

Lendo seus comentários, parece que você não me importo se todas as duplicatas são substituídas. Então, você poderia fazer isso em uma linha com o seguinte:

a = ['b','c','d','b','b']
new_a = [i if len([c for c in t[:index+1] if c == i]) == 1 else "x" for index, i in enumerate(a)]

print(new_a)

['b','c','d','x','x']

Se você realmente só quer atualizar 2ª instância as seguintes obras em uma linha também:

a = ['b','c','d','b','b']
new_a = [i if len([c for c in t[:index+1] if c == i]) != 2 else "x" for index, i in enumerate(a)]

print(new_a)

['b','c','d','x','b']
Respondeu 02/09/2018 em 05:39
fonte usuário

votos
0

Basicamente operações de lista são:

  • a.pop(idx)(Irá aparecer item no índice idx)
  • a.insert(idx, val)(Irá inserir valor de valna posição idx)

No entanto, isso é um problema de programação muito mal definido, com muitas questões em aberto:

  1. podem as duplicações ocorrem mais de 2 vezes?
  2. deve a substituição ser feito apenas para o 1º produto?
  3. deve a substituição ser feita com carácter constante, ou talvez uma seqüência?

Cheira a lição de casa. Se assim for, faça-o sem stackoverflow ....

Respondeu 02/09/2018 em 05:28
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more