Вижте този хитър малък трик, който научих в Python!

Помислете, че имаме списък с дубликати. Това, което искам да направя, е да премахна дубликатите в списъка, като същевременно запазя реда на списъка.

lst1 = ['a','b','a','c','b','a']

Когато мислим за премахване на дубликати от списък, първото нещо, което ни идва на ум, е да конвертираме списъка в набор и след това да го конвертираме обратно в списък.

old_list = ['a','b','a','c','b','a']

new = set(old_list)

print(new)

'''
OUTPUT:

['c','a','b']

'''

Опа! Изглежда, че наборите не запазват реда на елементите, присъстващи в списъка.

Можем да използваме много готин едноредов код в кода, който може да направи това за нас, който е както следва:

old_list = ['a','b','a','c','b','a']

new = dict.fromkeys() 

print(new) # Output: {'a': None, 'b': None, 'c': None}

Методът .fromkeys()създава нов речник чрез съпоставяне на всеки ключ от дадена последователност към конкретна предварително дефинирана стойност.

Това ще създаде речник със стойностите в old_listкато ключове и тъй като ключовете на речника винаги са уникални, ще видите, че дубликатите ще бъдат премахнати и редът също ще бъде запазен.

old_list = ['a','b','a','c','b','a']

new = list(dict.fromkeys()) 

print(new) # Output: ['a','b','c']

Ние ще преобразуваме речника обратно в списък и както можете да видите, дубликатите от списъка са премахнати.