<p>嗨,我刚刚开始学习如何编写程序,并有一个需要用Python编写的函数,这就是它背后的思想:</p>
<p>如果<code>word</code>在<code>wordList</code>中并且完全由手中的字母组成,则返回<code>True</code>。否则,返回<code>False</code>。不会改变手或单词表。在</p>
<p>有一个函数可以用来检查用户输入的单词中字母的频率,这是一个转换成dict的函数,我尝试过用各种方法使用iteritems,但是没有用,我被那些有重复字母的单词卡住了,当我在用户手中没有这封信的两个条目时,它们会被当作真的返回。在</p>
<p>抱歉,如果不清楚,我两周前才开始。
有什么建议就好了我已经在这上面呆了很长时间了!在</p>
<pre><code>def isValidWord(hand,word,wordList):
"""
Returns True if word is in the wordList and is entirely
composed of letters in the hand. Otherwise, returns False.
Does not mutate hand or wordList.
word: string
hand: dictionary (string -> int)
wordList: list of lowercase strings
"""
wordC = getFrequencyDict(word)
handC = dict.copy(hand)
if word not in wordList:
return False
for c in word:
if c not in hand:
return False
for k,v in wordC.iteritems():
if k in hand and v > 1:
handC[k] -= 1
</code></pre>
<p>基本上,我的下一步是想弄清楚如何将word和handC进行比较,并将值为0的任何键折现。
我想(希望)那会起作用。在</p>
<p>这样的怎么样:</p>
<pre><code>def isValidWord(hand, word, word_list):
if word not in word_list:
return False
for c in word:
if c not in hand:
return False
return True
</code></pre>
<p>因为字符串是可编辑的,所以可以逐个检查。在</p>
<p>祝你好运</p>