1

我有一个名为 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]Still I do not get the key values, 我需要像这样的值超过 2 的键 我该['SC', 'OK', 'NH'] 怎么做?

4

2 回答 2

2

从使用创建的字典中读取与defaultdict()普通的相同dict

要获取值 > 1 的键,您可以:

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

如果您使用的是 Python 3,那么它是my_dict.items().

于 2015-01-27T14:02:54.873 回答
0

我们可以使用列表压缩方法。

>>> 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']
于 2015-01-27T14:12:09.347 回答