Подсчет слов в словаре питона - PullRequest
0 голосов
/ 20 ноября 2018

Учитывая список :

lst = ['apple', 'orange', 'kiwi', 'pears', 'pears', 'banana']

и словарь

dict = {'orange': 4, 'apple':2, 'pears': 1}

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

Результат:

dict = {'apple':3, 'orange':5, 'kiwi':1, 'pears':3, 'banana':1}

Я пытался:

for string in lst:
    if string in dict:
        dict[string] += 1
    else:
        dict[string] = 1
return dict

Это дает мне порядок из словаря идобавляет новые строки к нему.Что мне нужно сделать, это добавить строку за строкой в ​​словарь и, если строка уже существует, он может добавить значение.Таким образом, порядок строк:

Что он дает:

dict = {'orange': 5, 'apple': 3, 'pears': 3, 'kiwi': 1, 'banana': 1}

Что я хочу:

dict = {'apple':3, 'orange':5, 'kiwi':1, 'pears':3, 'banana':1}

1 Ответ

0 голосов
/ 20 ноября 2018

Я бы взглянул на высокопроизводительные коллекции, а именно counter .

from collections import  Counter
a = Counter(['apple', 'orange', 'kiwi', 'pears', 'pears', 'banana'])
print(a)
>>> print(a)
Counter({'pears': 2, 'apple': 1, 'orange': 1, 'kiwi': 1, 'banana': 1})
>>> print(a['something not in original']
0
>>> print(a['pears']
2
>>> print(a['apple']
1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...