У меня возникла проблема с реализацией функции.Выполнение функции
Цель состоит в том, чтобы уменьшить значение ключа в словарной руке, если оно находится в слове. Например:
word = hi
hand = {'h':2,'i':1}
-> функция update_hand (слово, рука)
hand = {'h'1}
поэтому я попытался:
def update_hand(hand, word):
for letter in range(len(word)):
if hand.get(word[letter],0) != 0:
hand[word[letter]] -= 1
if hand.get(word[letter],0) == 0:
del hand[word[letter]]
return hand
но когда я называю его, я получаю:
Traceback (most recent call last):
File "/home/phillip/Desktop/ps3/ps3/ps3a.py", line 168, in <module>
print update_hand('quali', {'a': 1, 'i': 1, 'm': 1, 'l': 2, 'q': 1, 'u': 1})
File "/home/phillip/Desktop/ps3/ps3/ps3a.py", line 162, in update_hand
if hand.get(word[letter],0) != 0:
AttributeError: 'str' object has no attribute 'get'
Итак, я попытался реализовать это в тестовом файле (просто для лута), и все работает отлично ... ну, я не знаю, что я сделал не так.
Спасибо, Phillip
Там нет необходимости делать это неудобно для письма в диапазоне (LEN (слово)): , слово [письмо] материал. Просто перебирайте строку напрямую. – Antimony