Как переназначить значение в словарь на основе - PullRequest
0 голосов
/ 10 января 2020

Мне нужно реализовать функцию в словаре.

Переменные:

  • В существующем словаре есть буквы, которые я должен играть, и значение представляет частоту письмо. например. {'a': 1, 'n': 2, 'd': 1, 'e': 1}

  • Слово представляет собой слово, составленное из этих букв. например. 'and'

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

Я написал этот код:

dic = {'a': 1, 'n': 2, 'd': 1, 'e': 1} 
word = 'and'

newdic = {}
for keys in dic:
    if keys not in word:
        newdic[keys] = newdic.get(keys,0) + 1
print(newdic) 

результат, который я получил: {'e': 1}
, но ожидаемый результат должен быть: {'a': 0, 'n': 1, 'd': 0, 'e': 1} Не могли бы вы посоветовать? спасибо

Ответы [ 2 ]

0 голосов
/ 10 января 2020

Это может помочь. Добавьте оператор else для keys в слове [в данном случае "and"].

dic = {'a': 1, 'n': 2, 'd': 1, 'e': 1} 
word = 'and'

newdic = {}
for keys in dic.keys():
    if keys not in word:
        newdic[keys] = dic[keys]+1
    else:
        newdic[keys] = dic[keys]-1
print(newdic) 
0 голосов
/ 10 января 2020
dic = {'a': 1, 'n': 2, 'd': 1, 'e': 1} 
word = 'and'

newdic = {}
for keys in dic:
    if keys not in word:
        newdic[keys] = newdic.get(keys, 0) + 1
    else:
        newdic[keys] = dic.get(keys, 0) -1 
print(newdic) 

Я думаю, это то, что вы искали. См. Оператор for -l oop и добавлена ​​часть else.

...