comprensión de lista sino nada python
Estoy tratando de usar la comprehensión de listas para añadir nombres que no están en la lista, y no sé cómo usar algo como else pass
.
list_test = []
names = ['Gabriel', 'Lucas', 'Pedro', 'Gabriel', 'Fernando'] # Para ver los 'Elipsis' sólo aumente esta lista
Sé que si uso un loop 'for ...' se puede resolver este problema, pero el código original funciona así y no puedo cambiarlo (esta parte es sólo un pequeño fragmento).
count = 0
while True:
if count == len(names): # se rompe cuando se han leído todos los nombres
break
name = names[count] # Sólo seleccionar cada nombre
list_test.append(name if name not in list_test else '') # no sé qué poner en else para pasar
count += 1
print(list_test)
He intentado con else ...
, pero en el código original se agrega Ellipsis
a la lista, en este código a veces funciona, pero necesito una mejor solución.
Quiero que la salida sea como: ['Gabriel', 'Lucas', 'Pedro', 'Fernando']
.
¿Alguien me puede ayudar? ;-(
davy.ai
Para agregar un nombre a la lista solo si aún no está presente, y omitirlo en caso contrario, puede utilizarse la cláusula “else” del operador ternario para retornar una tupla vacía, lo que no modificará la lista:
Esto agregará el nombre a la lista si aún no está presente y no hará nada en caso contrario. La tupla vacía es necesaria porque el operador ternario necesita tener algo que retornar tanto en los casos del “if” como del “else”, y si simplemente se utiliza “pass” (que no hace nada), no retornará nada, y el resultado será una lista con valores “None” en lugar de los nombres esperados. La tupla vacía es un valor simple e inofensivo que no afectará la lista, pero permitirá al operador ternario retornar un valor.
Entonces, el código completo sería:
Y la salida será:
Téngase en cuenta que existen otras maneras de lograr el mismo resultado, como utilizar un bucle “for” en lugar de un ciclo “while”, o utilizar la función integrada “set()” para eliminar duplicados de la lista, pero la solución anterior es un reemplazo directo del código original, utilizando comprensión de listas.