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 № 1Lesen 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"]