在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 中计数

从一个表中的多个表中计数代码返回 0

在 ngFor 中计数 - Angular 2

在 Access 2007 SQL 中的 Group By 聚合函数中计数 Distinct

从 H2 数据库引擎中的表中计数条目

计算 SQL 中计数相对于类别的百分比