주어진 단어에 해당 문자가 포함되어 있으면 목록의 문자 수량을 최소화하는 기능이 있습니다. 즉, 함수의 데프의 :거짓 반복 목록
word = 'better'
hand = {'b':1, 'r':1, 's':3, 't':2, 'z':1, 'e':3}
def updateHand(hand, word):
handCopy = hand.copy()
for x in word:
print(x)
print(hand)
handCopy[x] = hand.get(x,0) - 1
print(handCopy)
return handCopy
그리고 그 출력의 :
b
{'s': 3, 'b': 1, 'z': 1, 't': 2, 'r': 1, 'e': 3}
{'s': 3, 'b': 0, 'z': 1, 't': 2, 'r': 1, 'e': 3}
e
{'s': 3, 'b': 1, 'z': 1, 't': 2, 'r': 1, 'e': 3}
{'s': 3, 'b': 0, 'z': 1, 't': 2, 'r': 1, 'e': 2}
t
{'s': 3, 'b': 1, 'z': 1, 't': 2, 'r': 1, 'e': 3}
{'s': 3, 'b': 0, 'z': 1, 't': 1, 'r': 1, 'e': 2}
t
{'s': 3, 'b': 1, 'z': 1, 't': 2, 'r': 1, 'e': 3}
{'s': 3, 'b': 0, 'z': 1, 't': 1, 'r': 1, 'e': 2}
e
{'s': 3, 'b': 1, 'z': 1, 't': 2, 'r': 1, 'e': 3}
{'s': 3, 'b': 0, 'z': 1, 't': 1, 'r': 1, 'e': 2}
r
{'s': 3, 'b': 1, 'z': 1, 't': 2, 'r': 1, 'e': 3}
{'s': 3, 'b': 0, 'z': 1, 't': 1, 'r': 0, 'e': 2}
Out[110]: {'b': 0, 'e': 2, 'r': 0, 's': 3, 't': 1, 'z': 1}
왜 내 기능은 두 번째 t
를 건너 뛰는 및/또는 목록에서 제거하지 않는 이유는 무엇입니까? 감사!
'handCopy [x] = hand.get (x, 0) - 1' -이 줄을 신중하게 고려하십시오. – user2357112
또한 목록이 아닙니다. – user2357112
'hand.get ('t')'가'2 '이기 때문에. – melpomene