ループ内で変数x
とy
を指定して、Pythonでループを実行しようとしています。私は、次のループを実行すると:Pythonのループ内で変数が認識されない
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']
と述べているので、これが起こっされる可能性がありますなぜ地球上の任意のアイデアに?事前
なぜあなたは、ループ内の関数を定義していますか? 'x'はその関数内でのみ定義されているので、' foo(x、y) 'は' x 'が何であるかを知りません –
インデント.... – miradulo
エラーを生成する行については言及していませんが、値を割り当てずに 'x'を参照しようとしているので、' x = data [i] ['body'] 'それはあなたの関数の中にあり、printステートメントは関数 –