Aquí podría ser tu PUBLICIDAD


python3: reemplazar a uno de los elementos picadura duplicados en una lista con otra cadena como:

votos
0

Hay varios elementos srting duplicados en mi lista. Quiero cambiar uno de estos elementos con otro elemento de la cadena. Por ejemplo:

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

Quiero cambiar 'b' con el índice 3 con 'x'

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

Publicado el 02/09/2018 a las 05:16
fuente por usuario H.R Sh
En otros idiomas...        العربية       

2 respuestas

votos
0

Leer sus comentarios, parece que no le importa si se reemplazan todos los duplicados. Por lo que podría hacer esto en una línea con lo siguiente:

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']

Si realmente sólo desea actualizar el segundo caso, las siguientes obras en una línea también:

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']
Respondida el 02/09/2018 a las 05:39
fuente por usuario Schalton


Aquí podría ser tu PUBLICIDAD


votos
0

Básicamente operaciones de lista son:

  • a.pop(idx)(Pop-punto del índice idx)
  • a.insert(idx, val)(Insertará valor de valen la posición idx)

Sin embargo, esto es un problema de programación muy mal definido, con un montón de preguntas abiertas:

  1. pueden producirse las duplicaciones más de 2 veces?
  2. será la sustitución hacerse sólo para el 1r artículo?
  3. será el reemplazo se realiza con carácter permanente, o tal vez una secuencia?

Huele a la tarea. Si es así, hacerlo sin stackoverflow ....

Respondida el 02/09/2018 a las 05:28
fuente por usuario mvk_il