Pythonicly исключая дубликаты из списка хэшируемых элементов

Я просто думал о том, чтобы делать

mylist = list(set(mylist))

удалить все повторяющиеся записи из mylist, Тем не менее, встроенные цепочки всегда кажутся немного странными. Мне интересно, каков (самый) питонский / дзенский способ удаления дубликатов из списка?

При поиске я обнаружил, что вышеупомянутая конструкция является ответом на проблему "устранения дубликатов" здесь на stackru. Никто не кричал, что это плохая идея, но это только подразумевает ответ, а явное лучше, чем неявное.

Является ли приведенная выше конструкция способом удаления дубликатов из списка (из хешируемых элементов)?

Если нет, то что?

1 ответ

Что делает что-то Pythonic, если не быть кратким и явным? И это именно то, что делает ваш код:

uniq = list(set(dups))

Преобразовать список в набор, который удаляет дубликаты, поскольку наборы содержат только уникальные значения, а затем снова превратить его в список. Цепочка встроенных модулей для достижения цели не является случайностью. Это содержательно. Succinct. Элегантный. Это не зависит от каких-либо модулей или библиотек. Каждая операция понятна в том, что она делает. Намерение легко различимо. Поистине, это правильное решение.

Другие вопросы по тегам