Pythonicly исключая дубликаты из списка хэшируемых элементов
Я просто думал о том, чтобы делать
mylist = list(set(mylist))
удалить все повторяющиеся записи из mylist
, Тем не менее, встроенные цепочки всегда кажутся немного странными. Мне интересно, каков (самый) питонский / дзенский способ удаления дубликатов из списка?
При поиске я обнаружил, что вышеупомянутая конструкция является ответом на проблему "устранения дубликатов" здесь на stackru. Никто не кричал, что это плохая идея, но это только подразумевает ответ, а явное лучше, чем неявное.
Является ли приведенная выше конструкция способом удаления дубликатов из списка (из хешируемых элементов)?
Если нет, то что?
1 ответ
Что делает что-то Pythonic, если не быть кратким и явным? И это именно то, что делает ваш код:
uniq = list(set(dups))
Преобразовать список в набор, который удаляет дубликаты, поскольку наборы содержат только уникальные значения, а затем снова превратить его в список. Цепочка встроенных модулей для достижения цели не является случайностью. Это содержательно. Succinct. Элегантный. Это не зависит от каких-либо модулей или библиотек. Каждая операция понятна в том, что она делает. Намерение легко различимо. Поистине, это правильное решение.