使用python选择字典中的项目

时间:2014-06-21 10:13:52

标签: python dictionary

我的目标是首先选择下面词典中的前3项。我还想选择值大于1的项目。

dic=Counter({'school': 4, 'boy': 3, 'old': 3, 'the': 1})

My attempt:
1.>>> {x:x for x in dic if x[1]>1}
{'boy': 'boy', 'the': 'the', 'old': 'old', 'school': 'school'}


2.>>>dic[:3]
TypeError: unhashable type

Desired output: Counter({'school': 4, 'boy': 3, 'old': 3})

感谢您的建议。

1 个答案:

答案 0 :(得分:1)

对于计数大于一的项目:

>>> [x for x in dic if dic[x] > 1]
['boy', 'school', 'old']

对于三个most common项:

>>> [x for x, freq in dic.most_common(3)]
['school', 'boy', 'old']

获取字典:

>>> {x: freq for x,freq in dic.items() if freq > 1}
{'boy': 3, 'school': 4, 'old': 3}
>>> {x: freq for x,freq in dic.most_common(3)}
{'boy': 3, 'school': 4, 'old': 3}

注意:这些是普通的词典。使用Counter(result)将其重新设置为Counter。除了字典理解之外,您还可以使用内置dict函数将元组列表转换为字典,然后从中创建Counter

>>> Counter(dict(dic.most_common(3)))
Counter({'school': 4, 'boy': 3, 'old': 3})