我如何循环搜索功能 - python
how can I loop through search function - python
我正在尝试制作搜索程序,但我卡在了某个循环部分。
功能工作有几个步骤。
首先,我将从用户那里得到一个词(输入)。
然后,我将比较用户的输入是否包含在任何字典的任何值中
如果包含用户的输入,那么我想从字典中打印出键值作为列表类型。如果没有,那么我想执行循环并打印出一些消息。
例如,如果我输入 nice 作为输入,那么程序应该将 matthew 打印为列表类型。
程序应该保持循环,直到我键入不包含在字典值中的输入。
例如,如果我键入来自 dic_1 和 dic_2 的任何输入,程序应保持循环直到我输入不涉及字典值的输入。
如果我键入垃圾或字典中没有的内容,那么程序应该打印出不匹配的消息。
dic_1 = {'matthew':'he is a nice guy', 'dennis':'he is a bad guy', 'alex':'he is a good guy'}
dic_2 = {'manchester': 'city from england', 'tokyo':'city from japan', 'rome':'city from italy'}
def searchWords(*dicts):
while(True):
list_1 = []
t = input('Enter a word for search:')
for dic in dicts:
for k,v in dic.items():
if t in v:
list_1+=[k]
else:
print("Nothing match, end program")
break
return list_1
print(searchWords(dic_1, dic_2)
现在,当我输入一次时打印出键值没有问题,但我卡在了循环部分。
我想在整个程序中保持循环,直到我输入字典值中没有涉及的单词,但我想不出任何解决循环问题的算法。我尝试了 for 循环和 if 循环,但我失败了。因此,如果你们可以为循环提供任何建议或想法,将不胜感激。
处理此问题的最简单方法是使用 True/False 标志,如下所示:
dic_1 = {'matthew': 'he is a nice guy',
'dennis': 'he is a bad guy',
'alex': 'he is a good guy'}
dic_2 = {'manchester': 'city from england',
'tokyo': 'city from japan',
'rome': 'city from italy'}
def searchWords(*dicts):
while True:
t = input('Enter a word for search: ')
found = []
for dic in dicts:
for k, v in dic.items():
if t in v.split():
found.append(k)
if not found:
print('No match')
break
else:
print(*found)
我正在尝试制作搜索程序,但我卡在了某个循环部分。 功能工作有几个步骤。 首先,我将从用户那里得到一个词(输入)。 然后,我将比较用户的输入是否包含在任何字典的任何值中 如果包含用户的输入,那么我想从字典中打印出键值作为列表类型。如果没有,那么我想执行循环并打印出一些消息。
例如,如果我输入 nice 作为输入,那么程序应该将 matthew 打印为列表类型。 程序应该保持循环,直到我键入不包含在字典值中的输入。 例如,如果我键入来自 dic_1 和 dic_2 的任何输入,程序应保持循环直到我输入不涉及字典值的输入。
如果我键入垃圾或字典中没有的内容,那么程序应该打印出不匹配的消息。
dic_1 = {'matthew':'he is a nice guy', 'dennis':'he is a bad guy', 'alex':'he is a good guy'}
dic_2 = {'manchester': 'city from england', 'tokyo':'city from japan', 'rome':'city from italy'}
def searchWords(*dicts):
while(True):
list_1 = []
t = input('Enter a word for search:')
for dic in dicts:
for k,v in dic.items():
if t in v:
list_1+=[k]
else:
print("Nothing match, end program")
break
return list_1
print(searchWords(dic_1, dic_2)
现在,当我输入一次时打印出键值没有问题,但我卡在了循环部分。 我想在整个程序中保持循环,直到我输入字典值中没有涉及的单词,但我想不出任何解决循环问题的算法。我尝试了 for 循环和 if 循环,但我失败了。因此,如果你们可以为循环提供任何建议或想法,将不胜感激。
处理此问题的最简单方法是使用 True/False 标志,如下所示:
dic_1 = {'matthew': 'he is a nice guy',
'dennis': 'he is a bad guy',
'alex': 'he is a good guy'}
dic_2 = {'manchester': 'city from england',
'tokyo': 'city from japan',
'rome': 'city from italy'}
def searchWords(*dicts):
while True:
t = input('Enter a word for search: ')
found = []
for dic in dicts:
for k, v in dic.items():
if t in v.split():
found.append(k)
if not found:
print('No match')
break
else:
print(*found)