Цикл для проверки того, содержит ли рука слово в слове, работает так, как показано ниже.
hand = {'h': 1, 'e': 1, 'l': 2, 'o': 1}
word = 'hello'
extra_hand = hand.copy()
for letter in word:
extra_hand[letter] -= 1
>> extra_hand
{'h': 0, 'e': 0, 'l': 0, 'o': 0}
Затем я пытаюсь перейти к пониманию словаря.Это должно выглядеть так.
hand = {'h': 1, 'e': 1, 'l': 2, 'o': 1}
word = 'hello'
extra_hand = {letter:hand[letter] - 1 for letter in word}
>>extra_hand
{'h': 0, 'e': 0, 'l': 1, 'o': 0}
Как видите, результат другой, l равно 1, что неверно.Я подозреваю, что 'l' были получены из объекта словаря руки без мутации.Итак, он просто сделал 2-1 дважды и стал 1, а не 2-1 и 1-1.
Что мне нужно сделать, чтобы исправить словарь, пожалуйста?