Python For循环内部函数只执行一次
我遇到了一个我从未遇到过的问题,我确实从另一个函数多次调用了一个包含for循环的函数,但后者只执行了一次,我不知道我做错了什么 下面是包含for循环的函数Python For循环内部函数只执行一次,python,function,for-loop,Python,Function,For Loop,我遇到了一个我从未遇到过的问题,我确实从另一个函数多次调用了一个包含for循环的函数,但后者只执行了一次,我不知道我做错了什么 下面是包含for循环的函数 def check_neutre(word): global f4 i = 0 neutre = [] print(word) for ligne in f4: neutre.append(ligne.strip()) print(len(neutre)) return "done" f
def check_neutre(word):
global f4
i = 0
neutre = []
print(word)
for ligne in f4:
neutre.append(ligne.strip())
print(len(neutre))
return "done"
f4是在顶部打开的文件变量
这里是调用它的函数
def check_words(words):
polarite = 0
exist = False
for word in words:
print(check_neutre(word))
check_words(words)
单词变量是单词列表
上面的输出显示循环只执行一次我想您是在搜索文件的每一行上的循环,而在代码中您只是一次将其全部循环 您可以在文件开头更改为:
f4\u lines=f4.readlines()
并使用f4\u行的全局设置
instad off4
如果它是一个大文件,可能有另一种解决方案,因为这将在第一次循环
f4
后将文件加载到内存中,文件指针位于末尾,循环永远不会执行。您可以在循环之前尝试f4.seek(0)
,但是,为什么要为每个单词循环整个文件?为什么不循环一次,然后使用neutre
列表?@Tomerikoo yes,这就是我计划做的,我将声明一个全局neutre列表并重用它。不要声明全局,将它作为参数传递给函数