[python] Odstraneni duplicitnich retezcu

Petr Prikryl PrikrylP na skil.cz
Středa Červenec 20 11:05:10 CEST 2005


Martin Jedlička
> mam seznam retezcu neco jako:
>	 
>	AAA
>	BBB
>	AAA
>	BBB
>	CCC
>	 
>	a potreboval bych z toho seznamu odstranit 
>	duplicitni retezce, proste, aby se kazdy 
>	retezec vyskytoval pouze jednou. Jak na to?

Dá se na to jít asi různě. Pokud nechci, aby se seznam
navíc seřadil, dá se to udělat třeba takto:

def myUniq(lst):
    import sets
    result = []
    processed = sets.Set()     # prazdna mnozina jiz zpracovanych

    for item in lst:
        if item not in processed:
            result.append(item)
            processed.add(item)

    return result


if __name__ == '__main__':
    lst =['AAA', 'BBB', 'AAA', 'BBB', 'CCC']
    for prvek in lst:
        print prvek

    print '-' * 70

    vysledek = myUniq(lst)
    
    for prvek in vysledek:
        print prvek



Další informace o konferenci Python