Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python从单词列表函数中搜索问题_Python_Python 3.x_Performance_Python 3.7 - Fatal编程技术网

Python从单词列表函数中搜索问题

Python从单词列表函数中搜索问题,python,python-3.x,performance,python-3.7,Python,Python 3.x,Performance,Python 3.7,出于这样或那样的原因,我在理解如何让我的单词列表在文本文件中搜索我提供的单词列表时遇到了问题。我确实找到了一种通过使用“elif”语句创建单词列表的方法,但我想正确地做到这一点Python 3.7.x name = 'Foo' name1 = 'Bar' name2 = 'python' searchfile = open("test.txt","r") num_lines = 0 for line in searchfile: num_lines += 1 line = li


出于这样或那样的原因,我在理解如何让我的单词列表在文本文件中搜索我提供的单词列表时遇到了问题。我确实找到了一种通过使用“elif”语句创建单词列表的方法,但我想正确地做到这一点Python 3.7.x

name = 'Foo'
name1 = 'Bar'
name2 = 'python'
searchfile = open("test.txt","r")
num_lines = 0

for line in searchfile:
    num_lines += 1
    line = line.lower()
    if name in line:
        print ("Found on Line:",num_lines, line)
    elif name1 in line:
        print ("Found on Line:",num_lines, line)
    elif name2 in line:
        print ("Found on Line:",num_lines, line)
我想让“name”变量有一个要搜索的单词列表。就这样。。但是我有错误

name = ("foo","bar","python")
name1 = ("foo1","bar1","python1")
name2 = ("foo2","bar2","python2")
TypeError:“in”需要字符串作为左操作数,而不是元组

也许如果我看到正确的代码,我的大脑就会理解它。任何帮助都将不胜感激。

最简单的方法就是使用for循环

name = ("foo","bar","python")
for n in name:
    if n in line:
        print ("Found on Line:",num_lines, line)

这是因为在您的示例中,
name
是一个元组,将
name置于行中
将尝试检查元组是否位于字符串类型的行中。 您可以像这样迭代任何要检查的单词

name = ('Foo', 'Bar', 'python')
searchfile = open("test.txt","r")

for num_lines, line in enumerate(searchfile, 1):
    for word in names:
        if word.lower() in line.lower():
             print("Found on Line:", num_lines, line)
此外,如果您想像您所说的那样拥有多个“名称”,您可以:

name = ("foo","bar","python")
name1 = ("foo1","bar1","python1")
name2 = ("foo2","bar2","python2")
names = name + name1 + name2
和前面一样,对名称中的单词进行迭代。我不知道您的要求是什么,但最好是创建

names = ("foo", "bar", "python", "foo1", "bar1", "python1", "foo2", "bar2", "python2")

作为单个元组而不是N个元组。

首先,通常认为将变量编号而不是列表是不好的做法。因此,您不用name='x',name1='y',name2='z',而是使用name=['x','y','z']。就名称列表而言,是否需要每个元组中的一个或所有值才能进行匹配?他们需要井然有序吗?