Python 编程错误“;如果项目不在列表中”;

Python 编程错误“;如果项目不在列表中”;,python,python-2.7,Python,Python 2.7,我正在写一个文字游戏,玩家用一个x字母的手来造字,当他们造字时,单词中的字母会从玩家的手上减去 我正在尝试使用此函数查看输入的单词是否在我的单词列表中: def is_valid_word(word, hand, word_list): worddict = get_frequency_dict(word) if word not in word_list: return False for x in LETTERS: numletter

我正在写一个文字游戏,玩家用一个x字母的手来造字,当他们造字时,单词中的字母会从玩家的手上减去

我正在尝试使用此函数查看输入的单词是否在我的单词列表中:

def is_valid_word(word, hand, word_list):
    worddict = get_frequency_dict(word)
    if word not in word_list:
        return False

    for x in LETTERS:
        numlettershand = hand.get(x)
        numlettersword = worddict.get(x)
        if numlettershand == None and numlettersword != None:
            return False
        if numlettershand != None and numlettersword != None:
            if numlettershand - numlettersword < 0:
                return False

   return True
def是有效单词(单词、手、单词列表):
worddict=get\u frequency\u dict(word)
如果单词不在单词列表中:
返回错误
对于字母x:
numletershand=hand.get(x)
NumletterSwarm=worddict.get(x)
如果numletershand==无且numletershow!=无:
返回错误
如果numlettershand!=没有和Numletter剑!=无:
如果numletershand-numletershand<0:
返回错误
返回真值
它给了我这个错误:

Traceback (most recent call last):
   File "C:\Users\Oleg\Desktop\Sams Stuff\programming\MIT\Problem Set 3\ps3a.py", line 112, in <module>
    play_hand(deal_hand(HAND_SIZE), load_words)
  File "C:\Users\Oleg\Desktop\Sams Stuff\programming\MIT\Problem Set 3\ps3a.py", line 106, in play_hand
    if is_valid_word(word, hand, wordlist) == True:
  File "C:\Users\Oleg\Desktop\Sams Stuff\programming\MIT\Problem Set 3\ps3a.py", line 75, in is_valid_word
    if word not in word_list:
TypeError: argument of type 'function' is not iterable
回溯(最近一次呼叫最后一次):
文件“C:\Users\Oleg\Desktop\Sams Stuff\programming\MIT\Problem Set 3\ps3a.py”,第112行,在
玩手牌(发手牌(手牌大小),加载单词)
文件“C:\Users\Oleg\Desktop\Sams Stuff\programming\MIT\Problem Set 3\ps3a.py”,第106行,在play\u hand中
如果为有效字(字、手、字表)=真:
文件“C:\Users\Oleg\Desktop\Sams Stuff\programming\MIT\Problem Set 3\ps3a.py”,第75行,在word中有效
如果单词不在单词列表中:
TypeError:类型“function”的参数不可iterable

参数
wordlist
是一个函数,而不是一个iterable。在将其传递给
之前是否要调用它是有效的\u word()

您需要调用load\u words:
load\u words()

因此
word\u list
是一个函数对象;大概是
load\u words
是由
play\u hand
传递的函数吗?您需要发布更多的代码。。。很可能错误在调用代码中。您已传递了对函数的引用。您是否有一个名为
单词列表
的函数?如果这些答案中的任何一个对您有帮助,请投票并接受一个,否则,请在您的问题中添加更多信息,以便我们可以帮助您。这应该是一个注释,Ignacio;一个多余的。@MartijnPieters:“错误在调用代码中;请验证您是否正确地传递了所有参数。”很短,但这是一个答案。也许不是世界上最好的,但仍然有效;这里的上下文太少,无法做出任何有意义的回答。耸耸肩这是真的,但我做的比较少(后来就搞定了)。谢谢,我很抱歉这是一个愚蠢的问题。