[英]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.