Tengo una lista de listas:
lists = [[1,4,3,2,4], [4,5]]
Quiero aplanar esta lista y eliminar todos los duplicados; o, en otras palabras, aplicar una operación de unión establecida:
desired_result = [1, 2, 3, 4, 5]
¿Cuál es la forma más sencilla de hacer esto?
union()
solo admite múltiples argumentos para Python versión 2.6 o superior. Parece que usa una versión anterior a esa, por lo que probablemente tenga que usar un bucle explícito:total = set(); for x in results_list: total.update(x)
(s /; / \ n /)results_union = set.union(*(set(el) for el in results_list))
TypeError: descriptor 'union' requires a 'set' object but received a 'list'
en Python 3.6 al menos.set.union(*results_list)
, está vinculando el descriptor del método manualmente, es decir, enviando el primer elemento deresults_list
como "self". Esto crea algunas restricciones extrañas: 1. no escribe correctamente el pato (ahora el primer elemento debe ser un conjunto o instancia de una subclase de conjunto), y 2. la unión de un vacíoresults_list
será un error (resultado incorrecto - debería devolver vacío conjunto).