我正在尝试在Python中运行循环,同时在循环内指定变量x
和y
。当我运行以下循环时:
my_funcs = {}
for i in range(len(data) - 1):
def foo(x, y):
x = data[i]['body']
y = data[i+1]['body']
tfidf = vectorizer.fit_transform([x, y])
return ((tfidf * tfidf.T).A)[0,1]
foo.func_name = "cosine_sim%d" % i
my_funcs["cosine_sim%d" % i] = foo
print(foo(x,y))
我得到了一个奇怪的错误:x is not defined
在print(foo(x,y))
行中我知道为什么这可能会发生,因为我已经说过x = data[i]['body']
?
提前致谢
答案 0 :(得分:2)
如果其他一切都正确,我认为你应该把这个方法移到循环之外。
您只在x
内定义了foo
,因此print
行并不了解它。另外,您正在覆盖x
的{{1}}参数
foo