get Schlüsselwert, dict, python

8

Wie kann ich einen Schlüssel von einem Wert erhalten?

mein Diktat:

%Vor%

mein halb funktionierender Code:

%Vor%

erwartete Ausgabe:

%Vor%

tatsächliche Ausgabe:

%Vor%

Wie kann ich meinen Code reparieren?

    
Boosted_d16 25.04.2014, 14:00
quelle

7 Antworten

7

Das Problem besteht darin, dass die Typen der Werte im Wörterbuch nicht identisch sind, was die Verwendung des Wörterbuchs erheblich erschwert, nicht nur in diesem Szenario. Während Python dies erlaubt, sollten Sie wirklich in Betracht ziehen, die Typen im Wörterbuch zu vereinheitlichen, z. mach sie alle Listen. Sie können dies in nur einer Codezeile tun:

%Vor%

Nun wird jede einzelne Zeichenfolge in eine Liste eingeschlossen und der vorhandene Code wird korrekt funktionieren.

Alternativ können Sie, wenn Sie das Wörterbuch in seiner aktuellen Form verwenden müssen, Ihre Suchfunktion anpassen:

%Vor%     
tobias_k 25.04.2014, 14:12
quelle
6

c={} - beliebiges Diktat
a (Wert) - muss diesen Schlüssel kennen

%Vor%     
Юра Панарин 06.09.2015 21:02
quelle
3
%Vor%

Wenn Sie möchten, dass ich es ein wenig kürze, könnte ich tun

%Vor%     
thefourtheye 25.04.2014 14:08
quelle
2

Ihr semi-funktionierender Code gibt die anderen Werte zurück, weil Einträge wie folgt aussehen:

%Vor%

.. dann prüft "1" in v , ob die Zeichenkette das Zeichen "1" enthält, während Einträge wie:

%Vor%

.. dann wird geprüft, ob die Liste ein Element "1" enthält.

Der Operator in funktioniert sowohl in Strings als auch in Listen, aber auf andere Weise:

%Vor%

Idealerweise sind Ihre Daten konsistenter - alle Listen oder alle Zeichenfolgen:

%Vor%     
dbr 25.04.2014 14:18
quelle
2

Der folgende Code bietet eine andere und kürzere Version des Abrufens von Wörterbuchschlüsseln um einen gewissen Wert, indem Sie list comprehensions und dic.items () verwenden:

%Vor%     
Serjik 22.09.2017 01:32
quelle
0

Ich persönlich denke mit in und die Funktion values ist einfacher.

%Vor%

Ausgabe ist:

%Vor%     
Ehsan Ab 10.07.2015 21:43
quelle
0
%Vor%     
Raj Damani 07.03.2016 06:36
quelle

Tags und Links