所以我试图让游戏拼字游戏,但我有一点问题,我会尽力解释它:
我写了一个函数,生成一个包含7个键的字典(键是你在拼字游戏中得到的字母,键的值表示我有多少次在那个字母中输入我的手)
def deal_hand (7)
生成代码:
{'a': 1, 'b': 2, 'k': 1, 'o': 1, 'p': 1, 'r': 1}
这意味着我们有以下字母:a,b,b,k,o,p,r(我们有2次B,因为该键的值是2。
但是现在我想创建一个名为update_hand的第二个函数,这个函数应该取出用户用word_list创建的单词(在这个例子中类似于单词' bob')并且应该返回一个以下2个词典
{'a': 1, 'b': 0, 'k': 1, 'o': 0, 'p': 1, 'r': 1}
{'a': 1, 'k': 1, 'p': 1, 'r': 1}
我的程序应该返回其中一个程序,因为用户使用了字母:B,O和B.所以没有B和O.
我现在已经尝试了很多来解决这个问题,我想出了以下功能:
def update_hand(word, hand):
newd = {}
for x in word:
if x in newd:
newd[x]+=1
else:
newd[x] = 1
hand[x]-=1
return newd
在此代码中,函数中单词和hand的值为:
test_word = raw_input("Enter the word you want to make out of these letters.")
print update_hand(test_word,de_letters)
我认为我非常接近,但我只是得到我输入的最后一个字母的输出,请帮助我! :○
答案 0 :(得分:0)
def update_hand(hand, name):
delkeys = []
for n in name:
if not hand[n]:
raise ValueError("Cannot remove %s from hand" %n)
hand[n] -= 1
if not hand[n]:
delkeys.append(n)
for k in delkeys:
hand.pop(k)
return hand