Ich möchte einen bestimmten Python-Wörterbuchschlüssel drucken:
mydic = {}
mydic['key_name'] = 'value_name'
Jetzt kann ich prüfen, ob mydic.has_key('key_name')
, aber ich möchte den Namen des Schlüssels ausdrucken 'key_name'
. Natürlich könnte ich verwenden mydic.items()
, aber ich möchte nicht, dass alle Schlüssel aufgelistet werden, sondern nur ein bestimmter Schlüssel. Zum Beispiel würde ich so etwas erwarten (im Pseudocode):
print "the key name is", mydic['key_name'].name_the_key(), "and its value is", mydic['key_name']
Gibt es eine name_the_key()
Methode zum Drucken eines Schlüsselnamens?
Edit:
OK, vielen Dank für eure Reaktionen! :) Mir ist klar, dass meine Frage nicht gut formuliert und trivial ist. Ich war nur verwirrt, weil ich key_name erkannt habe und mydic['key_name']
zwei verschiedene Dinge sind und ich dachte, es wäre falsch, das key_name
aus dem Wörterbuchkontext auszudrucken . Aber in der Tat kann ich einfach den 'Schlüsselnamen' verwenden, um auf den Schlüssel zu verweisen! :) :)
quelle
Antworten:
Ein Wörterbuch hat per Definition eine beliebige Anzahl von Schlüsseln. Es gibt keinen "Schlüssel". Sie haben die
keys()
Methode, mit der Sie eine Pythonlist
aller Schlüssel erhalten, und Sie haben dieiteritems()
Methode, die Schlüssel-Wert-Paare zurückgibtPython 3-Version:
Sie haben also die Tasten im Griff, aber sie bedeuten nur dann wirklich Sinn, wenn sie an einen Wert gekoppelt sind. Ich hoffe ich habe deine Frage verstanden.
quelle
.iteritems()
wird nicht mehr unterstützt ....items()
. Ich habe ein Beispiel hinzugefügt.items()
Gibt eine Liste in Python 2.x zurück.Zusätzlich können Sie ....
quelle
Hmm, ich denke, Sie möchten vielleicht alle Schlüssel im Wörterbuch und ihre jeweiligen Werte drucken ?
Wenn ja, möchten Sie Folgendes:
Stellen Sie sicher, dass Sie auch + anstelle von 'verwenden. Das Komma setzt jedes dieser Elemente in eine separate Zeile, wobei as plus sie in dieselbe Zeile setzt.
quelle
"is"
undkey
usw. ein. Wenn Sie verwenden+
, müssen Sie den zusätzlichen Abstand in die Zeichenfolgen einfügen . Auch Schlüssel und Wert sind nicht unbedingt Zeichenfolge. In diesem Fall werden durch Komma str (Schlüssel) und str (Wert) verwendet, während+
ein Fehler verursacht wirdHinweis: In Python 3 wurde dic.iteritems () in dic.items () umbenannt.
quelle
Der Name des Schlüssels 'Schlüsselname' ist also Schlüsselname
print 'key_name'
oder eine beliebige Variable, die Sie darstellen.quelle
In Python 3:
quelle
Da wir alle versuchen zu erraten, was "Drucken eines Schlüsselnamens" bedeuten könnte, werde ich es versuchen. Vielleicht möchten Sie eine Funktion, die einen Wert aus dem Wörterbuch übernimmt und den entsprechenden Schlüssel findet? Eine umgekehrte Suche?
Beachten Sie, dass viele Schlüssel denselben Wert haben können, sodass diese Funktion einige Schlüssel mit dem Wert zurückgibt, möglicherweise nicht den von Ihnen beabsichtigten.
Wenn Sie dies häufig tun müssen, ist es sinnvoll, das umgekehrte Wörterbuch zu erstellen:
quelle
iteritems
,items
gibt diese Antwort, wie ursprünglich gezeigt, nur den ersten Schlüssel zurück - wenn mehrere Übereinstimmungen vorliegen. Um dies zu lösen, erstellen Sie eine leere Liste vorfor loop
(values_list = []
) und hängen Sie die Schlüsselvalues_list.append(k)
in derif
Schleife an diese Liste ( ) an . Verschieben Sie zuletzt die return-Anweisung (return values_list
) außerhalb derfor
Schleife.Oder Sie können es so machen:
quelle
Bearbeiten: Aktualisiert für die F-Strings von Python 3 ...
quelle
Stellen Sie sicher, dass Sie es tun
quelle
Was ist falsch daran,
'key_name'
stattdessen zu verwenden, auch wenn es sich um eine Variable handelt?quelle
quelle
quelle
Wahrscheinlich der schnellste Weg, um nur den Schlüsselnamen abzurufen:
Ergebnis:
Konvertiert das
dictionary
in einlist
dann listet es das erste Element auf, das das Ganze ist,dict
dann listet es den ersten Wert dieses Elements auf, das ist:key_name
quelle
Ich habe diese Frage nachgeschlagen, weil ich wissen wollte, wie ich den Namen "des Schlüssels" abrufen kann, wenn mein Wörterbuch nur einen Eintrag enthält. In meinem Fall war mir der Schlüssel unbekannt und konnte eine beliebige Anzahl von Dingen sein. Folgendes habe ich mir ausgedacht:
quelle
Versuche dies:
quelle
quelle
Wenn Sie den Schlüssel eines einzelnen Werts erhalten möchten, hilft Folgendes:
Auf pythonische Weise:
quelle
Ich füge diese Antwort hinzu, da eine der anderen Antworten hier ( https://stackoverflow.com/a/5905752/1904943 ) datiert ist (Python 2;
iteritems
) und der Code angezeigt wird - falls für Python 3 gemäß den vorgeschlagenen aktualisiert Problemumgehung in einem Kommentar zu dieser Antwort - Es werden stillschweigend nicht alle relevanten Daten zurückgegeben.Hintergrund
Ich habe einige Stoffwechseldaten, die in einem Diagramm dargestellt sind (Knoten, Kanten, ...). In einer Wörterbuchdarstellung dieser Daten haben Schlüssel die Form
(604, 1037, 0)
(die Quell- und Zielknoten und den Kantentyp darstellt) mit Werten der Form5.3.1.9
(die EC-Enzymcodes darstellen).Suchen Sie nach Schlüsseln für bestimmte Werte
Der folgende Code findet meine Schlüssel mit den angegebenen Werten korrekt:
Dieser Code gibt nur den ersten (von möglicherweise mehreren übereinstimmenden) Schlüssel zurück:
Der letztere Code, der naiv aktualisiert und
iteritems
durch ersetzt wirditems
, kann nicht zurückgegeben werden(604, 3936, 0), (1037, 3936, 0
.quelle
Um auf die Daten zuzugreifen, müssen Sie Folgendes tun:
Oder um auf den Wert zuzugreifen, rufen Sie ihn einfach über die Taste auf:
foo[bar]
quelle