Was ist der schnellste Weg, um zu bestimmen, ob ein Dict einen Schlüssel enthält, der mit einer bestimmten Zeichenfolge beginnt? Können wir besser als linear? Wie können wir eine O (1) -Operation erreichen, wenn wir nur den Anfang eines Schlüssels kennen?schnellste Möglichkeit, Python-Dict mit Teilschlüsselwort zu suchen
Hier ist die aktuelle Lösung:
for key in dict.keys():
if key.start_with(str):
return True
return False
Ich bezweifle, können Sie nichts besseres acheive, da Sie nicht den Hash-Wert des Schlüssels aus einem Teil des Schlüssels ableiten kann. Auch dies lässt Raum für Mehrdeutigkeiten, wenn zwei Schlüssel mit dem gleichen Präfix beginnen. – Hyperboreus
Es gibt Datenstrukturen, die dies können, aber sie sind in der Python-Standardbibliothek nicht verfügbar. Versuche oder binäre Suchbäume, zum Beispiel. – delnan
Da es sich um Geschwindigkeit handelt, fühle ich mich verpflichtet, darauf hinzuweisen, dass 'for key in dict_:' viel schneller ist als 'for key in dict_.keys():', da letzterer eine Liste von Schlüsseln erstellt. –