Ich versuche, Schleife in Python auszuführen, während die Variable x
und y
innerhalb der Schleife angeben. Wenn ich die folgende Schleife laufen:Nicht erkannte Variable innerhalb einer Schleife in 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))
bekomme ich die seltsamen Fehler: x is not defined
in der Linie print(foo(x,y))
Jede Idee, warum auf der Erde könnte dies geschehen, da ich gesagt habe, dass x = data[i]['body']
?
Vielen Dank im Voraus
Warum definieren Sie eine Funktion in einer Schleife? 'x' ist nur innerhalb dieser Funktion definiert, also' foo (x, y) 'weiß nicht, was' x' ist –
Einrückung .... – miradulo
Sie erwähnen nicht, welche Zeile den Fehler erzeugt, aber ich denke es wird 'print (foo (x, y))' sein, während du versuchst, auf 'x' zu verweisen, ohne ihm jemals einen Wert zuzuweisen - du hast gesagt, dass' x = data [i] ['body'] ' aber das ist innerhalb Ihrer Funktion, und die print-Anweisung ist außerhalb der Funktion –