退出python中的嵌套for循环

退出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

我想搜索一个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

看起来您只想在整个文件中找不到关键字时发出消息“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