Частота подсчета значений в питоне - PullRequest
0 голосов
/ 17 марта 2019

У меня есть требование Python, что я пытаюсь определить частоту появления значения.

Я не могу импортировать какие-либо дополнительные классы, поэтому для эффективной записи нужно написать его с нуля.Итак, у меня есть dict ()

1: Dog, 2: Cat, 3: Dog, 4: Elephant

И я хочу вернуть что-то вроде: -

2: Dog, 1: Cat, 1:Elephant

Это то, что у меня есть, но я не могу понять, как получитьрассчитывать на работу.Я продолжаю получать

0: Dog, 0: Cat, 0: Elephant

Это то, что у меня есть до сих пор, может кто-нибудь, пожалуйста, скажите мне, где я иду не так?

Это, очевидно, связано с моим утверждением подсчета (это просточто-то, что я нашел в Интернете, но оно явно не работает.

Я создаю пустой dict, а затем добавляю к нему значения (животных) вместе с соответствующим ключом. Затем мне нужно просмотреть все значения во всехключи для возврата частоты.

Входные данные - это объект dict (), который содержит значения, перечисленные в следующих значениях: 1: собака, 2: кошка, 3: собака, 4: слон

def frequency(self):  

    result = set()
    for i in self.items:
        result.add((self.count(i), self.items[i]))
    return sorted(result)

Ответы [ 2 ]

0 голосов
/ 17 марта 2019
d = {1:"Dog",2:"Cat", 3:"Dog", 4:"Elephant"}
count = {}
for v in d.values():
    if(not(v in count)):
        count[v] = 0
    count[v] += 1
print(count)

{'Собака': 2, 'Кошка': 1, 'Слон': 1}

0 голосов
/ 17 марта 2019

предположим, что вашему словарю присвоено имя d, и вам нужно количество значений:

from collections import Counter
d = {1: "dog", 2: "cat", 3: "dog", 4: "elephant"}
counts = Counter(d.values())

Теперь вы можете использовать counts Счетчик:

counts['dog'] # 2
counts['elephant'] # 1
counts['fish'] # 0

Если выВы должны использовать собственный код и классы для этого вместо стандартной библиотеки, я думаю, что ваша ошибка здесь:

result.add((self.count(i), self.items[i]))

То, что вы можете захотеть:

animal_name = self.items[i] #?
result.add((self.count(animal_name), animal_name))

В противном случае вы можете захотетьподелитесь с нами тем, что есть в self.items ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...