Czy zawsze szybsze jest użycie ciągu jako klucza w dyktacie?

Na tostrona, Widzę coś interesującego:

Zauważ, że istnieje szybka ścieżka dla dykt, które (w praktyce) dotyczą tylko klawiszy str; nie wpływa to na złożoność algorytmiczną, ale może znacząco wpływać na czynniki stałe: jak szybko kończy się typowy program.

Co to dokładnie znaczy?

Czy to oznacza, że ​​użycie łańcucha jako klucza jest zawsze szybsze?

Jeśli tak, to dlaczego?

Aktualizacja:

Dziękujemy za sugestie dotyczące optymalizacji! Ale bardziej interesuje mnie prosta prawda niż to, czy powinniśmy czynić optymalizację.

Aktualizacja 2:

Dzięki za wspaniałe odpowiedzi, przytoczę treść zpołączyć dostarczone przez @DaveWebb tutaj:

„...

ma_lookup jest początkowo ustawiony nalookdict_string funkcja (zmiana nazwy nalookdict_unicode w wersji 3.0), która zakłada, że ​​zarówno klucze w słowniku, jak i poszukiwany klucz są standardowymi PyStringObject. Jest wtedy w stanie wykonać kilka optymalizacji, takich jak łagodzenie różnych kontroli błędów, ponieważ porównywanie ciągów do ciągu nigdy nie powoduje wyjątków. Nie ma również potrzeby porównywania obiektów bogatych, co oznacza, że ​​unikamy dzwonieniaPyObject_RichCompareBooli zawsze używaj_PyString_Eq bezpośrednio.

... "

Ponadto, jeśli chodzi o liczby eksperymentów, myślę, że wielkość różnicy będzie jeszcze większa, jeśli nie będzie konwersji między ciągami

questionAnswers(2)

yourAnswerToTheQuestion