Tengo una solución a la siguiente pregunta. Esa solución sería un bucle con una prueba para su inclusión en la salida como la siguiente:¿Por qué la lista de comprensión no filtra los duplicados?
#!/usr/bin/env python
def rem_dup(dup_list):
reduced_list = []
for val in dup_list:
if val in reduced_list:
continue
else:
reduced_list.append(val)
return reduced_list
Estoy pidiendo a la siguiente pregunta, porque tengo curiosidad para ver si hay una solución lista por comprensión.
determinado los siguientes datos:
reduced_vals = []
vals = [1, 2, 3, 3, 2, 2, 4, 5, 5, 0, 0]
¿Por qué
reduced_vals = = [x for x in vals if x not in reduced_vals]
producen la misma lista?
>>> reduced_vals
[1, 2, 3, 3, 2, 2, 4, 5, 5, 0, 0]
Creo que tiene algo que ver con el control de la salida (reduced_vals
) como parte de una asignación a una lista. Tengo curiosidad, aunque en cuanto a la razón exacta.
Gracias.
Puede acercarse mucho usando [this] (http://stackoverflow.com/a/6197827/355230) answer. – martineau