Python在列表中搜索多个单词

Python在列表中搜索多个单词

问题描述:

我有这样的Python列表:

I have Python list like this:

['assistant manager', 'salesperson', 'doctor', 'production manager', 'sales manager', 'schoolteacher', 'mathematics teacher']

现在我想使用列表中的多个关键字进行搜索,例如:

Now I want to search with multiple keywords in my list, e.g:

当我尝试输入关键字老师销售

When I try to input the keyword teacher and sales

input keywords: teacher sales

它应该返回如下结果:


  • 学校老师

  • 数学老师

  • 销售人员

  • 销售经理

  • schoolteacher
  • mathematics teacher
  • salesperson
  • sales manager

到目前为止我已经编写了这样的代码:

So far I have made a code like this:

job_list = ['assistant manager', 'salesperson', 'doctor', 'production manager', 'sales manager', 'schoolteacher', 'mathematics teacher']

def search_multiple_words(search_words):
    search_words = [search_words]

    for line in job_list:
        if any(word in line for word in search_words):
            print(line)

search_words = input("input keywords: ")
search_multiple_words(search_words)

但是当我输入一个关键字而不是上面给出的示例中的多个关键字时,它才有效。

But it just works when I input one keyword, not multiple keywords like example I gave above.

那么,怎么做..?

job_list = ['assistant manager', 'salesperson', 'doctor', 'production manager',
            'sales manager', 'schoolteacher', 'mathematics teacher']


def search_multiple_words(search_words):
    search_words = search_words.split(' ')

    out = [s for s in job_list if any(xs in s for xs in search_words)]
    print(out)


search_words = input("input words: ")
search_multiple_words(search_words)