[英]Exit nested for loop in python
我想搜索一个csv文件,该文件将从前两列的列表中查找关键字。 找到关键字后,我设法使其正常工作,但是如果没有找到关键字,我希望收到一条消息。 不幸的是,“找不到”消息出现了四次。 我只是想让它出来一次。 请你帮忙 它正在做的是再次遍历每个关键字。
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
看起来您只想在整个文件中都没有找到关键字时发出“找不到”消息?
尝试这个:
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.. else
在这里像这样:
for keyword in keywords:
if keyword == row[0] or keyword == row[1]:
break
else:
print("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
我认为完全避免嵌套很容易。 遍历关键字列表两次似乎较慢,但是从本质上讲,它等效于对每个项目进行两次比较。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.