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)