Всегда ли быстрее использовать строку как ключ в dict?

На этомстраницаВижу что-то интересное

Note that there is a fast-path for dicts that (in practice) only deal with str keys; this doesn't affect the algorithmic complexity, but it can significantly affect the constant factors: how quickly a typical program finishes.

Так что именно это значит?

Означает ли это, что использование строки в качестве ключа всегда быстрее?

Если да, то почему?

Update:

Спасибо за предложения по оптимизации! Но на самом деле меня больше интересует простая истина, чем то, следует ли нам проводить оптимизацию или нет.

Update 2:

Спасибо за отличные ответы. Я процитирую содержаниессылка на сайт предоставлено @DaveWebb здесь:

" ...

ma_lookup изначально установлен наlookdict_string функция (переименована вlookdict_unicode в версии 3.0), в которой предполагается, что и ключи в словаре, и ключ, который ищется, являются стандартными PyStringObject. Затем он может выполнить несколько оптимизаций, например, смягчить различные проверки ошибок, поскольку сравнение строк и строк никогда не вызывает исключений. Также нет необходимости в богатом сравнении объектов, что означает, что мы избегаем вызоваPyObject_RichCompareBoolи всегда использовать_PyString_Eq непосредственно.

... "

Кроме того, для чисел эксперимента, я думаю, что разница будет еще больше, если нет преобразования в строку

Ответы на вопрос(2)

Ваш ответ на вопрос