Python-Schlüssel: - Schlüssel ist ein Tupel von integer-und string
Habe ich ein python-Wörterbuch, das ich habe bauen wo sein Schlüssel ist ein Tupel und Werte sind in einer Liste. Tupel enthält, integer und string. Am besten zu beschreiben, ist hier ein einfaches Beispiel:
>>> x = {(1, 'test'): ['marry', 'tom']}
Ich bauen will, eine Logik, wenn erste element der Tupel in der dictionary-Schlüssel vorhanden ist, muss meine Logik:
also versuchte ich Folgendes:
>>> if 1 in x:
... print x
...
und es hat nicht funktioniert.
Aber dann habe ich Folgendes gemacht um zu testen, ob in der Funktion arbeiten, wenn der Schlüssel nicht ein Tupel, und es gilt:
>>> y = {}
>>> y[1] = []
>>> y[1].append("tom")
>>> if 1 in y:
... print y
...
{1: ['tom']}
Wie kann man überprüfen, ob der Schlüssel vorhanden ist, in einem Wörterbuch, wenn der Schlüssel zufällig erste element eines Tupels.
- Es lohnt sich nicht, die eigene Antwort, aber ich habe bemerkt, daß die beiden Antworten, die mit O(N) Abfragen. Wenn das zu langsam, Sie haben eine Reihe von Fragen zu tun, und Sie don ' T mind trading time for space, können Sie eine Reihe mit den ersten Werten in der Tupel und überprüfen, ob "1" in set" in O(1) anstatt O(N). Könnten das gleiche mit dem zweiten Wert der Tupel.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie nur wissen, den ersten Teil des Schlüssels, finden Sie heraus, ob
any
Schlüssel enthalten:Oder, um eine Liste der übereinstimmenden Tasten:
Müssen Sie den test für den Schlüssel:
Tupel-Tasten sind nicht besonders und mit einem Tupel als Schlüssel bedeutet nicht, dass beide Elemente im Tupel werden über separate Tasten.
Wenn Sie
1
und'test'
zu Tasten, müssen Sie diese separat als Schlüssel, oder testen Sie jede Taste in das Wörterbuch separat.Könnten Sie eine Unterklasse der
dict
Art und Umfang auf die Unterstützung Ihrer interpretation:Demo: