python-3.x - 为什么我收到此“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
有人会帮我吗?
谢谢
解决方案
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
推荐阅读
- javascript - 在用于制作过滤器的 javascript 代码中键入错误
- android - 在 Firebase 项目中添加多个应用
- javascript - 在移动视图上向下滚动时网页自动滚动到顶部
- python-3.x - Mongo 批量更新
- angular - 如何从角度组件并行调用多个http服务
- php - GET 标头从 HTTP 发送到 PHP
- milliseconds - MPV 播放器时间格式 HH:MM:SS 或 HH:MM:SS:mmm
- android - android如何在按下后退按钮时取消显示广告。?
- cocos2d-js - 每个终端打开时的 Cocos2d Bash 错误
- jenkins - 无法使用基本的 Jenkins 管道步骤有条件地删除工作空间内的目录