繁体   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