Ich möchte etwas wie "Zeichen, bei denen die Reihenfolge keine Rolle spielt" als Schlüssel zum Erstellen eines Wörterbuchs in Python verwenden.Was kann ich Tuple (sortierte (my_string)) in Python ersetzen?
Wie "abc" und "cba" kann mir den gleichen Hash-Index geben, und "aab" und "ab" geben mir verschiedene Hash-Indizes.
Ich fand eine Möglichkeit ist tuple(sorted(my_string))
zu verwenden, um eine Liste von Zeichen zu hashable, aber es kann O (NlogN) Zeit Komplexität erfordern.
Ich habe versucht, Counter
zu verwenden, aber es ist nicht waschbar. Frozenset
ist zwar hashbar, erlaubt jedoch keine Duplikate.
Gibt es einen besseren Weg (O (N) Zeit Komplexität) zu ersetzen tuple(sorted(my_string))
?
Wenn oben Fehler auftreten, bitte korrigieren Sie mich. Vielen Dank!
Verwenden Sie einfach ''' .join (sortierte (my_string))'. Das Tupel ist unnötig. Es ist nichts falsch mit O (N log N) Algorithmen - viele Algorithmen sind O (N log N), und dennoch benutzen wir sie immer noch. –
Was ist 'triple'? Meinst du Tupel? – interjay
@interjay Sorry, es ist ein Tippfehler. Ja, ich meine 'Tuple' –