[英]Not recognized variable inside a loop in Python
我試圖在 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
在行中x is not defined
print(foo(x,y))
知道為什么會發生這種情況,因為我已經聲明x = data[i]['body']
?
提前致謝
如果其他一切都正確,我認為您應該將該方法移到循環之外。
您只在foo
定義了x
,因此print
行不知道它。 另外,您無論如何都覆蓋了foo
的x
參數
def foo(x, y):
tfidf = vectorizer.fit_transform([x, y])
return ((tfidf * tfidf.T).A)[0,1]
my_funcs = {}
for i in range(len(data) - 1):
x = data[i]['body']
y = data[i+1]['body']
foo.func_name = "cosine_sim%d" % i
my_funcs["cosine_sim%d" % i] = foo
print(foo(x,y))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.