簡體   English   中英

無法識別 Python 中循環內的變量

[英]Not recognized variable inside a loop in Python

我試圖在 Python 中運行循環,同時在循環內指定變量xy 當我運行以下循環時:

   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行不知道它。 另外,您無論如何都覆蓋了foox參數

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM