Ist es immer schneller, einen String als Schlüssel in einem Diktat zu verwenden?
DaraufSeiteIch sehe etwas Interessantes:
Beachten Sie, dass es einen schnellen Weg für Dikte gibt, die (in der Praxis) nur mit Str-Tasten umgehen. Dies hat keinen Einfluss auf die algorithmische Komplexität, kann jedoch die konstanten Faktoren erheblich beeinflussen: wie schnell ein typisches Programm beendet wird.
Was bedeutet das genau?
Bedeutet das, dass die Verwendung von Zeichenfolgen als Schlüssel immer schneller ist?
Wenn ja warum
Aktualisieren:
Danke für die Vorschläge zur Optimierung! Aber eigentlich interessiert mich mehr die einfache Wahrheit, als ob oder wann wir optimieren sollten.
Update 2:
Danke für die tollen Antworten, ich zitiere den Inhalt aus demVerknüpfung bereitgestellt von @DaveWebb hier:
"...
ma_lookup wird anfangs auf den Wert gesetztlookdict_string Funktion (umbenannt inlookdict_unicode in 3.0), wobei davon ausgegangen wird, dass sowohl die Schlüssel im Wörterbuch als auch der gesuchte Schlüssel Standard-PyStringObjects sind. Es ist dann in der Lage, einige Optimierungen vorzunehmen, z. B. verschiedene Fehlerprüfungen abzuschwächen, da ein String-zu-String-Vergleich niemals Ausnahmen hervorruft. Es sind auch keine umfangreichen Objektvergleiche erforderlich, sodass keine Aufrufe erforderlich sindPyObject_RichCompareBoolund immer verwenden_PyString_Eq direkt.
... "
Bei den Testnummern denke ich, dass der Unterschied sogar noch größer sein wird, wenn es keine Umwandlung von Int in String gibt