Python 如何设置top10计数器函数的格式

Python 如何设置top10计数器函数的格式,python,python-3.x,text,Python,Python 3.x,Text,我有一个字符串列表,我想计算每个字符串在列表中被提及的次数,然后很好地格式化它们 我已成功使用以下代码将列表按我希望的格式打印出来: def top10(项目): 返回计数器(项目)。最常见(10) 对于键,前10名中的val(项目): 打印(键“=”,val) 但是我现在很难将它嵌入到top10函数中 我尝试了一些方法,这是唯一一种打印结果的方法: def top10(项目): 对于键,计数器中的val(项目)。最常见(10): 返回(键“=”,val) 打印(top10(项目)) 它只打

我有一个字符串列表,我想计算每个字符串在列表中被提及的次数,然后很好地格式化它们

我已成功使用以下代码将列表按我希望的格式打印出来:

def top10(项目):
返回计数器(项目)。最常见(10)
对于键,前10名中的val(项目):
打印(键“=”,val)
但是我现在很难将它嵌入到top10函数中

我尝试了一些方法,这是唯一一种打印结果的方法:

def top10(项目):
对于键,计数器中的val(项目)。最常见(10):
返回(键“=”,val)
打印(top10(项目))
它只打印最常见的字符串,并且格式错误,所以字面上是这样的:(key,“=”,val)


任何帮助都将不胜感激

不要返回值:而是在打印的代码行中使用它。并在函数中进行打印。这里有一个方法:

from collections import Counter

def top10(items):
    for key, val in Counter(items).most_common(10):
        print(key, '=', val)

top10([1,2,1,3,1,4,1,5,5,6,1,7, 8, 9, 10, 11, 12, 13])
从那打印出来的是

1 = 5
5 = 2
2 = 1
3 = 1
4 = 1
6 = 1
7 = 1
8 = 1
9 = 1
10 = 1

可能是你打算做的

def top10(项目):
对于键,前10名中的val(项目):
打印(键“=”,val)
返回计数器(项目)。最常见(10)
前10名(项目)
但为什么要在返回前10项的同一个函数中打印值呢。这样,函数在调用计数器时总是打印计数器。你的目标是使你的功能尽可能小,并且只做一件事。因此,我建议您遵循接近上一个解决方案的步骤

def print_top(项目):
对于键,计数器中的val(项目)。最常见(10):
返回(键“=”,val)
打印顶部(top10(项目)):

请详细解释您预期的ouputhi,谢谢您的回复。我希望它打印我在第一个代码中概述的格式。因此,它会在右边打印单词,这是“键”,然后=,然后是它在列表中出现的次数,这是“值”。希望这能有所帮助,抱歉含糊不清。您的第一个代码很好地工作,谢谢。它现在也打印为表中的最后一个元素。这是因为我的列表中有一个空值吗?当我使用第一个代码时,它没有happen@adam22:除非您显示显示问题的完整代码段,否则我不能这么说。我只能猜测其他情况。但可能您的
items
变量中已经有一个
None
。犯了一个愚蠢的错误,那是因为我使用了print(top10(items)),而不仅仅是调用函数。