2012-08-30 18 views

risposta

42

Si potrebbe utilizzare un set:

b_set = set(map(tuple,a)) #need to convert the inner lists to tuples so they are hashable 
b = map(list,b_set) #Now convert tuples back into lists (maybe unnecessary?) 

O, se si preferisce di lista/generatori:

b_set = set(tuple(x) for x in a) 
b = [ list(x) for x in b_set ] 

Infine, se l'ordine è importante, è sempre possibile sort b:

b.sort(key = lambda x: a.index(x)) 
+0

Se vuoi che qualcosa sia unico, un set è la strada da percorrere. :) – mgilson

+0

Thnak you, questo è esattamente quello che voglio. – user1507156

8

Vedere la risposta di mgilson se l'ordine degli elenchi non è importante. Se si desidera mantenere l'ordine, fare qualcosa come:

b = list() 
for sublist in a: 
    if sublist not in b: 
     b.append(sublist) 

Ciò manterrà l'ordine nella lista originale. Tuttavia, è più lento e più prolisso rispetto all'uso di set.

+0

Grazie anche a te, il tuo metodo è interessante, ma non ho bisogno di mantenere l'ordine. – user1507156

Problemi correlati