繁体   English   中英

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

[英]How to get key values from default dictionary in Python?

我有一个默认字典,名称为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][df[val] for val in df if df[val]>1]

我得到的输出为[2, 2, 2]

如果我[df.keys() for val in df if df[val]>1]打印[df.keys() for val in df if df[val]>1]但仍然无法获取键值,则需要键值大于2的键,例如['SC', 'OK', 'NH']我该怎么做?

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

要获取值> 1的键,可以执行以下操作:

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

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

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

>>> 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']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM