退出python中的嵌套for循环
我想搜索一个csv文件,该文件将从前两列中的列表中查找关键字。我已经设法让它工作时,一个关键字被发现,但想有一个消息,如果没有找到关键字。不幸的是,消息“找不到”出现了四次。我只想让这本书出版一次。请问你能帮忙吗?它所做的是再次遍历每个关键字退出python中的嵌套for循环,python,csv,python-3.x,Python,Csv,Python 3.x,我想搜索一个csv文件,该文件将从前两列中的列表中查找关键字。我已经设法让它工作时,一个关键字被发现,但想有一个消息,如果没有找到关键字。不幸的是,消息“找不到”出现了四次。我只想让这本书出版一次。请问你能帮忙吗?它所做的是再次遍历每个关键字 import csv keywords=["none","blank","off","screen","blank"] f=open("CSVSolutions.csv") for row in csv.reader(f): for keyword
import csv
keywords=["none","blank","off","screen","blank"]
f=open("CSVSolutions.csv")
for row in csv.reader(f):
for keyword in keywords:
if keyword == row[0] or keyword == row[1]:
print(row[2])
break
else:
print ("not found")
break
f.close
看起来您只想在整个文件中找不到关键字时发出消息“Not found”(未找到) 试试这个:
import csv
keywords=["none","blank","off","screen","blank"]
f=open("CSVSolutions.csv")
for row in csv.reader(f):
found = False;
for keyword in keywords:
if keyword == row[0] or keyword == row[1]:
print(row[2])
found = True
break
if not found:
print ("not found")
break
f.close()
主要的一点是,您应该使用另一个变量来跟踪您正在查找的状态。看起来您只想在整个文件中找不到关键字时发出消息“Not found”(未找到) 试试这个:
import csv
keywords=["none","blank","off","screen","blank"]
f=open("CSVSolutions.csv")
for row in csv.reader(f):
found = False;
for keyword in keywords:
if keyword == row[0] or keyword == row[1]:
print(row[2])
found = True
break
if not found:
print ("not found")
break
f.close()
主要的一点是,您应该使用另一个变量来跟踪您正在查找的状态。您可以使用
for。。否则
像这样:
您可以将
用于。。否则
像这样:
我觉得完全避免嵌套比较容易。在关键字列表上迭代两次似乎比较慢,但基本上相当于对每个项目进行两次比较
我觉得完全避免嵌套比较容易。在关键字列表上迭代两次似乎比较慢,但基本上相当于对每个项目进行两次比较。调用close方法
f.close
->f.close()
调用close方法f.close
->f.close()
请添加更改说明和/或代码注释感谢所有帮助,最后一个代码打印出四个输出,这是我想要避免的。我会试试其他的。不幸的是,上面的任何一个都起作用了。第一个在找到关键字时不打印任何内容。csv是非常基本的,您可以想象前两列包含关键字,如果它们匹配,那么第三列中的任何内容都会被打印出来。我得到的接近没有被发现打印出4次。我不明白这是为什么。我试着在not found语句之后暂停。还是不走运。但是感谢所有的帮助请添加您的更改和/或代码注释的描述感谢所有的帮助,最后的代码打印出四个输出,这是我想要避免的。我会试试其他的。不幸的是,上面的任何一个都起作用了。第一个在找到关键字时不打印任何内容。csv是非常基本的,您可以想象前两列包含关键字,如果它们匹配,那么第三列中的任何内容都会被打印出来。我得到的接近没有被发现打印出4次。我不明白这是为什么。我试着在not found语句之后暂停。还是不走运。但是感谢所有的帮助
import csv
keywords=["none","blank","off","screen","blank"]
f=open("CSVSolutions.csv")
for row in csv.reader(f):
if row[0] in keywords or row[1] in keywords:
print(row[2])
else:
print ("not found")
f.close