如何从Python中的默认字典中获取键值?

时间:2015-01-27 13:59:24

标签: python dictionary dictionary-comprehension

我有一个名为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的键 我该怎么办?

2 个答案:

答案 0 :(得分:2)

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

获取值为&gt;的键1,你会这样做:

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

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

答案 1 :(得分: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']