Теперь, когда Python 3.7 делает сохраняющие порядок слова официально частью спецификации языка вместо деталей реализации, я пытался обдумать, как лучше всего использовать это свойство. Сегодня я обнаружил, что мне нужен набор для сохранения порядка, и думаю, что словарь может сработать.
Предположим, у нас есть список хэшируемых элементов. Нам нужен список уникальных записей, и мы хотим сохранить порядок этих записей на основе первого появления. Простой конструктор словаря должен сделать трюк:
ls = "Beautiful is better than ugly. Explicit..."
uniques = list({s:0 for s in ls})
>>> ['B', 'e', 'a', 'u', 't', 'i', 'f', 'l', ' ', 's', 'b', 'r', 'h', 'n', 'g', 'y', '.', 'E', 'x', 'p', 'c']
Это сохранит порядок при первом появлении и избавит от всех дубликатов.
Я хотел бы знать, что сообщество думает об этом сценарии использования и о функции сохранения порядка в целом.
- Есть ли причина, по которой этот метод не следует использовать?
- Есть ли лучшие способы решить эту проблему?
- Является ли этот метод Pythonic?
Читая дзен Python, я в конфликте. Метод прост, но основан на неявном упорядочении.
Пожалуйста, дайте мне знать, что вы думаете. Спасибо.