【发布时间】:2015-01-27 13:59:24
【问题描述】:
我有一个名为 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})
如何获取值大于 1 的字典的键。
如果我这样做[df[val] for val in df if df[val]>1]
我得到的输出是[2, 2, 2]
如果我打印 [df.keys() for val in df if df[val]>1] 仍然没有得到键值,我需要像这样 ['SC', 'OK', 'NH'] 值大于 2 的键
我该怎么做??
【问题讨论】:
-
[val for val in df...]?但将其称为key会更清楚;这就是您迭代的内容,默认情况下:[key for key in df if df[key] > 1]。或者,[key for key, val in df.items() if val > 1]. -
@jonrsharpe 如果我调用 .key 会出现属性错误
-
我从不建议
.key。 -
@jonrsharpe [str(val) for val in df if df[val]>1] 这行得通,非常感谢!!!
标签: python dictionary dictionary-comprehension