是否可以在多条件下找出满足哪种条件?

时间:2018-01-25 15:08:48

标签: python beautifulsoup

我正在使用python / beautifulsoup web scraper。我正在搜索某些关键字,我的陈述如下:

if 'tribe' in entry or 'ai1ec' in entry or 'tfly' in entry:
            print('Plugin Found!')
            rating = easy
            sheet.cell(row=i, column=12).value = rating

我想要做的是找出哪些关键字使该陈述成立。我的第一直觉是编写一个嵌套循环来检查,但我不确定是否有办法捕获使该语句为真的值,这将涉及更少的代码?

2 个答案:

答案 0 :(得分:2)

[编辑:更改为仅查找名字]

for name in ('tribe', 'ailec', 'tfly'):
    if name in entry:
        print ('Name =', name)
        print('Plugin Found!')
        rating = easy
        sheet.cell(row=i, column=12).value = rating
        break

答案 1 :(得分:2)

我会使用生成器理解,我会使用默认值传递给next。如果理解没有找到任何内容,next将返回默认值,否则返回第一个找到并停在那里(any种,但存储结果)

cases = ['tribe','allec','tfly']
entry = 'iiii allec rrrr'


p = next((x for x in cases if x in entry),None)
if p is not None:
    print('Plugin Found!',p)