首页 > 解决方案 > 为什么我收到此“NameError:未定义名称'trainingData'”

问题描述

我尝试如下导入 training.txt 数据。

def readTrainingData(training):
    
    trainingData=[]
    
    with open(training.txt) as f:
        
        for line in f:
            a1, a2 = line.strip().split()
            trainingData.append((a1, a2))
    return trainingData 

之后,我尝试使用 traingdata 来测量一些分数,如下所示:

for pair in trainingData:
  linkScores[pair[0]+''+pair[1]]= computeProximityScore(pair[0],pair[1],'Jaccard',neighbors)

但它给出了一个错误


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-17-2532640f4771> in <module>
----> 1 trainingData

NameError: name 'trainingData' is not defined

有人会帮我吗?

谢谢

标签: python-3.xnameerror

解决方案


training当您将变量传递给函数时,我不明白您尝试了什么。但是当你打开一个文件时,你需要这样做:

```with open("file_name.txt") as f:```

此外,您无法访问trainingData函数外部的变量。

我更新了你的代码(我希望它是你想要的):

Main(或您运行该功能的任何其他地方):

trainingData = readTrainingData("training.txt")
# The rest of your code.

你的功能:

def readTrainingData(training):
    trainingData = []

    with open(training) as f:
        for line in f:
            a1, a2 = line.strip().split()
            trainingData.append((a1, a2))
    return trainingData

推荐阅读