Словарь Python, добавление нового значения к ключу, если присутствует в списке несколько раз - PullRequest
2 голосов
/ 19 сентября 2011

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

Единственная проблема заключается в том, что мой код добавляет значение +1 для каждого ключа ... Например, если я введу: "aasf", дикт будет: a: 2, s: 2, f: 2 ... Что неправильно ??

word = raw_input("Write letters: ")
chars = {}

for c in word:
    chars[c] = c.count(c)
    if c in chars:
        chars[c] += 1
print chars

Ответы [ 2 ]

3 голосов
/ 19 сентября 2011
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53) 
>>> from collections import Counter
>>> Counter('count letters in this sentence')
Counter({'e': 5, 't': 5, ' ': 4, 'n': 4, 's': 3, 'c': 2, 'i': 2, 'h': 1, 'l': 1, 'o': 1, 'r': 1, 'u': 1})
>>> 
1 голос
/ 19 сентября 2011

Вы должны использовать либо

chars[c] = words.count(c)

ИЛИ

chars[c] += 1

, но не оба.

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