Python-Listen-Deduplizierung
一.{}.fromkeys(list).keys()
list2 = {}.fromkeys(list1).keys ( )
two.set
list2 = list(set(list1))
three.itertools.grouby
ids = [1,4,3,3,4,2,3,4,5,6,1]
ids.sort()
it = itertools . groupby(ids)
für k, g darin:
print k
Vier, dumme Methode
ids = [ 1,2,3,3,4,2,3,4,5,6,1]
news_ids = []
for id in ids:
if id nicht in news_ids:
news_ids.append(id)
print news_ids
Diese vier haben ein Merkmal: Nach der Deduplizierung ändert sich die Reihenfolge der Elemente und die Effizienz angeblich Der erste ist etwas schneller als der zweite
5. Durch die Neusortierung des Index können Duplikate entfernt und die Reihenfolge der Elemente beibehalten werden
# Das Ergebnis ist [1, 4, 3, 2, 5, 6] Nicht [1, 2, 3, 4, 5, 6]
ids = [1,4,3,3,4,2 ,3,4,5,6 ,1]
news_ids = list(set(ids))
news_ids.sort(key=ids.index)
news_ids drucken #[1, 4, 3, 2, 5, 6]
Sechs: Reduzieren
ids = [1,4,3,3,4,2, 3,4,5,6, 1]
func = lambda x,y:x if y in x else x + [y]
print Reduce(func, [[], ] + ids)#[1, 4 , 3, 2, 5, 6]