Python在列表中搜索多个单词
我有这样的Python列表:Python在列表中搜索多个单词,python,arrays,python-3.x,Python,Arrays,Python 3.x,我有这样的Python列表: ['assistant manager', 'salesperson', 'doctor', 'production manager', 'sales manager', 'schoolteacher', 'mathematics teacher'] job_list = ['assistant manager', 'salesperson', 'doctor', 'production manager', 'sales manager', 'schoolteac
['assistant manager', 'salesperson', 'doctor', 'production manager', 'sales manager', 'schoolteacher', 'mathematics teacher']
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)
x = [y for y in lis for string in str1 if y.find(string) != -1]
现在我想在我的列表中搜索多个关键字,例如:
当我尝试输入关键字教师和销售
input keywords: teacher sales
它应该返回如下结果:
['assistant manager', 'salesperson', 'doctor', 'production manager', 'sales manager', 'schoolteacher', 'mathematics teacher']
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)
x = [y for y in lis for string in str1 if y.find(string) != -1]
- 教师
- 数学教师
- 售货员
- 销售经理
['assistant manager', 'salesperson', 'doctor', 'production manager', 'sales manager', 'schoolteacher', 'mathematics teacher']
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)
x = [y for y in lis for string in str1 if y.find(string) != -1]
但它只在我输入一个关键字时起作用,而不是像我上面给出的例子那样输入多个关键字
那么,如何做到这一点呢?您可以使用该方法。这应该适合您:
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)
lis=['assistant manager', 'salesperson', 'doctor', 'production manager', 'sales manager', 'schoolteacher', 'mathematics teacher']
str1 = ["teacher", "sales"]
x=[]
for y in lis:
for string in str1:
if y.find(string) != -1:
x.append(y)
上面的代码是为了可读性和可理解性。但是,可以使用如下列表理解将其压缩成一行:
['assistant manager', 'salesperson', 'doctor', 'production manager', 'sales manager', 'schoolteacher', 'mathematics teacher']
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)
x = [y for y in lis for string in str1 if y.find(string) != -1]
两者都做相同的事情,并给出如下输出
[“销售人员”、“销售经理”、“教师”、“数学”
教师“]
祝你好运 正如Adrian Shum所说,您的输入只提供一个字符串。在将其提供给函数之前,需要先将其拆分
job_list = ['assistant manager', 'salesperson', 'doctor', 'production manager', 'sales manager', 'schoolteacher', 'mathematics teacher']
def search_multiple_words(search_words):
# Not neecssary anymore as you're feeding a list
# 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: ").strip().split()
search_multiple_words(search_words)
你可以试试这个
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: ").split(' ')
for w in search_words:
search_multiple_words(w)
输出:
input keywords: sales teacher
salesperson
sales manager
schoolteacher
mathematics teacher
相当多的问题:1
input()
给你一个字符串,你应该把输入的搜索词拆分成一个列表。2.search\u multiple\u words()
中的前两行似乎没有任何意义