В библиотеке python теперь у нас есть две Python Реализация словарей, которая подклассифицирует dict
поверх и родного типа dict
.
Защитники Python всегда предпочитали defaultdict
использовать dict.setdefault
, когда это возможно. Даже doc цитирует, что This technique is simpler and faster than an equivalent technique using dict.setdefault():
Аналогичным образом, поскольку словари не поддерживают порядок, использование OrderedDict
с использованием dict
, за которым следует сортировка элементов, является предпочтительным, когда это возможно для альтернативного использования.
В приведенном выше случае код определенно чище, но ценой штрафа за производительность.
Отвечая и комментируя один из вопросов уникальный список python на основе элемента, я наткнулся на штраф за производительность над native dict
при использовании defaultdict
и OrderedDict
. Также кажется, что размер данных также не несущественен для преимущества производительности. dict
решение есть над другими.
Я верю There should be one-- and preferably only one --obvious way to do it.
, так что это лучший способ?