在python中计数最高的打印件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在python中计数最高的打印件相关的知识,希望对你有一定的参考价值。
我只想打印dictOfNumberOfDocumentsWithTermInside中最高计数的前3个>
我希望输出为('Bahrain', 'museum' , 'royal' )
allvocandcount = [] for index, voc in enumerate(allDocumentsNoDuplicates): count = 0 for x in allDocumentsTokenized: if voc in x and voc not in " ": count += 1 allvocandcount = (voc, count) print(allvocandcount)
输出:
('Bahrain', 5)
('one', 1)
('museum', 5)
('earliest', 1)
('royal', 4)
('areas', 1)
('convert', 1)
('Islam', 1)
我只想输出dictOfNumberOfDocumentsWithTermInside中计数最高的前3个,我希望输出为('Bahrain','museum','royal')allvocandcount = [] for index,voc in enumerate(...)>
答案
这里您可以使用sorted()
函数,该函数返回指定的可迭代对象的排序值。在这里,根据您的情况获取iterable
,我们可以使用给定字典的values()
。 get_sortable
是用来确定可能对其执行订购的成员的功能。换句话说,键的作用是,它提供了一种指定函数的方法,该函数可返回您想要的项目排序依据。在您的情况下,我们正在通过函数指导您根据元组实例的最后一个成员进行排序。最后,reverse
,一个布尔值,用于确定排序顺序,默认情况下,升序为False
。对于您的情况,我们需要返回最高(降序)数字,因此它是True
。
def get_sortable(item):
return item[-1]
x = { 0: ('Bahrain', 5),
1: ('one', 1), 2: ('museum', 5),
3: ('earliest', 1),
4: ('royal', 4),
5: ('areas', 1),
6: ('convert', 1),
7: ('Islam', 1),
8: ('oldest', 2),
9: ('', 0)}
x=sorted(x.values() , key = get_sortable, reverse = True)[0:3]
#to print sorted tuple list
print(x)
#to print first values of each tuples (as you requested)
print([t[0] for t in x])
另一答案
假设d为:
以上是关于在python中计数最高的打印件的主要内容,如果未能解决你的问题,请参考以下文章
使用条件 groupby 计算分类列的百分比并在 Python 中计数