首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python -如何编写不同数量的“if (condition)或if(Condition)”?

Python -如何编写不同数量的“if (condition)或if(Condition)”?
EN

Stack Overflow用户
提问于 2019-04-01 01:51:07
回答 1查看 97关注 0票数 0

我试图用Python编写一个解析器,它遍历多个文件,搜索给定的单词,并返回包含该字符串的所有行。

我使用的方法是多次打印包含搜索单词的文档中的同一行,如果该行包含用户正在尝试搜索的多个单词。

我目前使用的搜索方法是:

代码语言:javascript
复制
for line in range(0,length_of_documents):
    for word in range(0,words):
        if words[word] in document[line]:
            print(document[line])

为了克服这个问题,我需要写一些类似这样的代码:

代码语言:javascript
复制
for line in range(0,length_of_documents):
    for word in range(0,words):
        if words[0] in document[line] or if words[1] in document[line] or if words[2] in document[line]:
            print(document[line])

但我不知道用户可以输入多少个单词作为搜索字符串。对此有什么可能的解决方案?

我使用了eval()函数,它在字符串中传递,动态生成“if word in documentline or if words1 in documentline or........”在运行时,但这不起作用。我在'if‘处遇到语法错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-01 01:53:24

if引入了整个语句,而不是每个单独的条件。

代码语言:javascript
复制
if words[0] in document[line] or words[1] in document[line] or words[2] in document[line]:
    print(document[line])

这可以写得更简洁,特别是因为您希望使用any函数遍历所有words

代码语言:javascript
复制
if any(x in document[line] for x in words):
    print(document[line])

看起来您也只是想遍历document的每个元素,而对索引没有特别的兴趣。

代码语言:javascript
复制
for line in document:
    if any(x in line for x in words):
        print(line)
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55443749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档