2009-08-03 6 views
3

Y a-t-il une meilleure façon de faire cela en python, ou plutôt: Est-ce une bonne façon de le faire?Trouver des éléments uniques dans les tuples dans une liste python

x = ('a', 'b', 'c') 
y = ('d', 'e', 'f') 
z = ('g', 'e', 'i') 

l = [x, y, z] 

s = set([e for (_, e, _) in l]) 

Je regarde un peu laid, mais fait ce que je dois sans écrire une fonction "get_unique_elements_from_tuple_list" complexe ...;)

modifier: valeur attendue de s est réglée ([ 'b', 'e' ])

+0

pouvez-vous expliquer ce que vous voulez en utilisant une définition au lieu d'un exemple? – flybywire

Répondre

22

C'est bien, c'est ce que les ensembles sont pour. Une chose que je voudrais changer est la suivante:

s = set(e[1] for e in l) 

comme il améliore la lisibilité. Notez que j'ai également transformé la compréhension de liste en une expression de générateur; pas besoin de créer une liste temporaire.

Questions connexes