我的目标是首先选择下面词典中的前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})
感谢您的建议。
答案 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})