/ / Wie bekomme ich Schlüsselwerte aus dem Standardwörterbuch in Python? - Python, Wörterbuch, Wörterbuchverständnis

Wie bekomme ich Schlüsselwerte vom Standardwörterbuch in Python? - Python, Wörterbuch, Wörterbuch-Verständnis

Ich habe ein Standardwörterbuch mit dem Namen df:

defaultdict(<type "int">, {u"DE": 1, u"WV": 1, u"HI": 1, u"WY": 1, u"NH": 2, u"NJ": 1, u"NM": 1, u"TX": 1, u"LA": 1, u"NC": 1, u"NE": 1, u"TN": 1, u"RI": 1, u"VA": 1, u"CO": 1, u"AK": 1, u"AR": 1, u"IL": 1, u"GA": 1, u"IA": 1, u"MA": 1, u"ID": 1, u"ME": 1, u"OK": 2, u"MN": 1, u"MI": 1, u"KS": 1, u"MT": 1, u"MS": 1, u"SC": 2, u"KY": 1, u"OR": 1, u"SD": 1})

Wie erhalte ich die Schlüssel dieses Wörterbuchs, deren Werte mehr als 1 sind.

Wenn ich mache [df[val] for val in df if df[val]>1]

Ich bekomme die Ausgabe als [2, 2, 2]

Wenn ich drucke [df.keys() for val in df if df[val]>1] Ich bekomme immer noch keine Schlüsselwerte, ich brauche die Schlüssel, deren Werte mehr als 2 sind ["SC", "OK", "NH"] Wie mache ich das??

Antworten:

2 für die Antwort № 1

Lesen aus einem Wörterbuch, das mit erstellt wurde defaultdict() ist das gleiche wie ein normaler dict.

Um die Schlüssel mit Werten> 1 zu erhalten, würden Sie Folgendes tun:

my_dict = defaultdict(...)
print [key for key, value in my_dict.iteritems() if value > 1]

Wenn Sie Python 3 verwenden, dann ist es my_dict.items().


0 für die Antwort № 2

Wir können die Listenkomprimierungsmethode verwenden.

>>> from collections import defaultdict
>>> d = defaultdict(int)
>>> d["HI"] = 1
>>> d["NH"] = 2
>>> d["WY"] = 1
>>> d["OK"] = 2
>>> [i[0] for i in d.items() if i[1]>1]
["NH", "OK"]