Как отформатировать счетчик top10 - PullRequest
0 голосов
/ 29 сентября 2019

У меня есть список строк, и я хочу подсчитать, сколько раз каждая строка упоминается в списке, а затем красиво отформатировать их.

Мне удалось получить список для печати в отформатированном виде, как я хочу, используя этот код:

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

Он печатает только наиболее распространенную строку и отформатирован неверным образом, буквально так: (key, "=", val).

любая помощь будет принята с благодарностью!

Ответы [ 2 ]

0 голосов
/ 29 сентября 2019

может быть то, что вы намеревались сделать, это

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

    return Counter(items).most_common(10)

top10(items)

Но почему вы хотите печатать значения в той же функции, которая предназначена для возврата top10 элементов.Таким образом, ваша функция всегда печатает счетчик при вызове.Вам нужно стремиться к тому, чтобы вы функционировали как можно меньше и делали в этом только одно.Поэтому я предлагаю вам следовать, что близко к вашему последнему решению

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

print_top(top10(items)):

0 голосов
/ 29 сентября 2019

Не возвращайте значение: вместо этого используйте его в строках кода, которые печатаются.И сделать печать в функции.Вот один из способов:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...