奇怪的NameError:未定义全局名称'StrList'

时间:2013-07-05 02:52:47

标签: python global-variables

我认为这段代码看起来不错

def makeInverseIndex(strList):
    numStrList = list(enumerate(strList))
    n = 0
    dictionary = {}
    while (n < len(strList)):
        for word in numStrList[n][1].split():
            if word not in dictionary:
                dictionary[word] = {numStrList[n][0]}
            elif {numStrList[n][0]} not in dictionary[word]:
                dictionary[word]|={numStrList[n][0]} 
        n = n+1                     

    return dictionary

但是当我尝试运行模块时,我设法得到这个错误:

   >>> makeInverseIndex(L)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "./inverse_index_lab.py", line 21, in makeInverseIndex
    for word in numStrList[n][1].split():
NameError: global name 'StrList' is not defined

我看不出错误的来源。

我想输入这样的内容:

 L=['A B C', 'B C E', 'A E', 'C D A']

并将其作为输出:

D={'A':{0,2,3}, 'B':{0,1}, 'C':{0,3}, 'D':{3}, 'E':{1,2}}

1 个答案:

答案 0 :(得分:1)

看起来你修改了模块而没有重新加载它。

回溯向您显示源文件中该行的当前内容,这可能与您加载模块时的内容不同。