如何格式化Top10计数器功能

时间:2019-09-29 11:06:17

标签: python python-3.x text

我有一个字符串列表,想要计算列表中每个字符串的提及次数,然后对它们进行格式化。

我设法使用此代码以所需的格式打印出列表:

def top10(items):
    return Counter(items).most_common(10)

for key, val in top10(items):
    print(key, '=', val)

但是现在很难将其嵌入到top10函数中。

我已经尝试了一些方法,这是唯一打印任何结果的方法:

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

它只打印最常见的字符串,并以错误的方式设置格式,因此字面上是这样的:(键,“ =”,val)。

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

不返回该值:而是在打印的代码行中使用它。并在功能上进行打印。这是一种方法:

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

答案 1 :(得分:0)

可能是您打算做的

def top10(items):
    for key, val in top10(items):
        print(key, '=', val)

    return Counter(items).most_common(10)

top10(items)

但是为什么要在要返回前10个项目的函数中打印值。这样,您的函数始终在调用时打印计数器。您需要使自己的功能尽可能地小,并且只做一件事。因此,我建议您遵循接近您上一个解决方案的地方

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

print_top(top10(items)):