以python中的最高计数打印

以python中的最高计数打印,python,Python,我只想打印数字文档中计数最高的前3个数字 我希望输出为(“巴林”、“博物馆”、“皇家”) 输出: ('Bahrain', 5) ('one', 1) ('museum', 5) ('earliest', 1) ('royal', 4) ('areas', 1) ('convert', 1) ('Islam', 1) 假设d为: d = {0: ('Bahrain', 5), 1: ('one', 1), 2: ('museum', 5), 3: ('earliest', 1), 4: ('ro

我只想打印数字文档中计数最高的前3个数字

我希望输出为
(“巴林”、“博物馆”、“皇家”)

输出:

('Bahrain', 5)
('one', 1)
('museum', 5)
('earliest', 1)
('royal', 4)
('areas', 1)
('convert', 1)
('Islam', 1)
假设d为:

d = {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)}
您可以使用lambda表达式作为排序的函数的“键”参数:

sorted_d = sorted(d.items(), key=lambda key_d: key_d[1][1], reverse=True)
print([i[1][0] for i in sorted_d[0:3]]) 

因此,您的输出将如预期的那样。

在这里,您可以使用
sorted()
函数,该函数返回指定iterable对象的排序值。在这里,我们可以使用给定字典的
values()
来获取您的
iterable
get\u sortable
是一个用于决定可能执行排序的成员的函数。换句话说,键所做的是,它提供了一种方法来指定一个函数,该函数返回您希望对项目进行排序的内容。在您的例子中,我们通过函数指示要根据元组实例的最后一个成员进行排序。最后,
reverse
,这是一个bool值,用于确定默认升序的排序顺序(
False
)。在您的情况下,我们需要返回最高(降序)数字,因此它是
真的

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

您需要提供
文档编号,以便社区能够提供帮助;阅读@DavidS hi,我在代码中做了一些更改,你能检查一下吗?我能写x={allvocandcount},因为它可能会重视可能的更改,只需要打印机巴林、博物馆、皇家而不需要numebrsYes。你可以用你的字典allvocandcount代替x。x是为了演示我们如何做到这一点。我得到了这个错误:x=sorted(x.values(),key=get\u sortable,reverse=True)[0:3]AttributeError:'set'对象没有属性'values'@malsaeed,不确定你的意思。请张贴完整的代码。因此,我可以帮助Futurex作为一个例子。现在如果你的字典是allvocandcount,那么你可以说x=allvocandcount。这里allvocandcount将是您的字典变量。我是否需要添加任何导入!不,你不需要,所有需要的工具都已经在Python解释器Rhi中构建,它的工作,但它给了我最低的3如何获得最高的3,我需要改变什么?
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])