122 votes

Méthode pythonique pour créer l'union de toutes les valeurs contenues dans plusieurs listes

J'ai une liste de listes :

lists = [[1,4,3,2,4], [4,5]]

Je souhaite aplatir cette liste et supprimer tous les doublons ou, en d'autres termes, appliquer une opération d'union d'ensembles :

desired_result = [1, 2, 3, 4, 5]

Quelle est la manière la plus simple de procéder ?

0voto

Torsten Marek Points 27554
def getUniqueAttributeValues(xml_attribute_nodes):
    return set(l 
       for item in xml_attribute_nodes
       for l in item.getContent().split())

Si vous souhaitez obtenir une liste, il suffit de convertir l'ensemble en liste avant de le renvoyer.

0voto

Bear Points 590

J'ai utilisé la méthode suivante pour réaliser les intersections, ce qui évite d'avoir recours à des ensembles.

a, b= [[1,2,3], [1,2]]
s = filter( lambda x: x in b, a)

ou,

s = [ x for x in b if x in a ]

-2voto

Mike G. Points 1
desired_result = [x for y in lists for x in y]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X