簡體   English   中英

在python中退出嵌套循環

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

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