2016-02-27 9 views
5

Ho un risultato come questo:Come trasformare una coppia di valori in un array unico ordinato?

[(196, 128), (196, 128), (196, 128), (128, 196), 
(196, 128), (128, 196), (128, 196), (196, 128), 
(128, 196), (128, 196)] 

e vorrei convertirlo in valori unici come questo, in modo ordinato:

[128, 196] 

e sono abbastanza sicuro che c'è qualcosa di simile un trucco one-liner in Python (batterie incluse) ma non riesco a trovarne uno.

risposta

9

Creare l'unione insieme di tutte le tuple, quindi ordinare il risultato:

sorted(set().union(*input_list)) 

Demo:

>>> input_list = [(196, 128), (196, 128), (196, 128), (128, 196), 
... (196, 128), (128, 196), (128, 196), (196, 128), 
... (128, 196), (128, 196)] 
>>> sorted(set().union(*input_list)) 
[128, 196] 
+0

Perfetto! Semplicemente non ottengo il costruttore "' set() '" da solo –

+0

@OlivierPons: è una scorciatoia; crea un oggetto 'set()' vuoto che poi può essere usato per produrre un'unione con tutte le tuple. L'alternativa sarebbe convertire una tuple in un set e produrre l'unione con quella. –

+0

Ok, quindi posso chiederti di aggiungere il tuo commento con un campione funzionante di quello che hai appena spiegato, sono molto curioso di un codice funzionante di ciò che hai spiegato. Grazie mille davvero –

Problemi correlati