在列表中查找一个值,如果有多个值则打印所有值,否则从另一个列表中打印相应的值
Find A value in list , if there are multiple value print all the values else print the corresponding values from another list
我有两个列表:
Keyword = ['Dog', 'Cat', 'White Cat', 'Lion', 'Black Cat']
Definition = ['Mans Best Friend', 'The cat is a domestic species of a small carnivorous mammal', 'White cats are cute', 'Lions are Carnivores Wild Animal', 'Black Cats are Black in color']
我通过以下命令在 'query' 中获得语音输入:
import speech_recognition as sr
def takeCommand():
r = sr.Recognizer()
with sr.Microphone() as source:
print("Listening...")
r.pause_threshold = 1
audio = r.listen(source)
try:
print("Recognizing...")
query = r.recognize_google(audio, language ='en-in')
print(f"User said: {query}\n")
except Exception as e:
print(e)
print("Unable to Recognize your voice.")
return "None"
return query
query = takeCommand().Capitalize()
现在,如果查询中包含 Dog 我想从列表中打印相应的定义,即“Man's Best Friend”,如果查询包含 Cat ,我想向用户显示有多个关键字具有 'Cat' 在其中,即 'Cat'、'White Cat'、'Black Cat',如果查询中的单词不在列表中,我想打印“未找到关键字,请检查您的关键字”
有没有人知道如何解决这个问题?
不同情况的输入输出:
输入:查询中有 'Dog'。该程序应检查是否有超过 1 个包含 Dog 的单词。如果是,它应该打印所有包含 Dog 的关键字,如果不是,那么它应该打印相应的定义。在这种情况下,关键字 Dog 的输出应该是相应的定义,即 'Mans Best Friend'.
输入:查询中有 'Cat'。在这种情况下,关键字有 3 个关键字,其中有 cat,即 'Cat' 、 'Black Cat'、'White Cat' 所以这里的代码应该打印这些关键字而不是它们的定义。所以这种情况的输出:我们找到了多个关键字:'Cat'、'Black Cat'、'White Cat'
输入:查询中有 'Panther'。关键字中没有 Panther 所以它应该打印“没有匹配的关键字”。
Keyword = ['Dog', 'Cat', 'White Cat', 'Lion', 'Black Cat']
Definition = ['Mans Best Friend', 'The cat is a domestic species of a small carnivorous mammal', 'White cats are cute', 'Lions are Carnivores Wild Animal', 'Black Cats are Black in color']
def take_cmd(cmd):
multiple_val=[]
if cmd in Keyword:
for i,j in enumerate(Keyword):
if cmd in j:
multiple_val.append((i,j))
if len(multiple_val)>1:
i_removed=[j for i in multiple_val for j in i if type(j)!=int]
print(f"We have found multiple keywords : {i_removed}")
else:
print(Definition[Keyword.index(cmd)])
else:
print("There are no Matching Keywords")
这段代码的作用是:
- 检查输入的值是否存在于
Keyword
中,如果不存在则return“没有匹配的关键字”。
- 如果该值存在,则将检查是否有多个实例或该值是否在多个索引中可用。
- 如果 return 也为真,则将其附加到
multiple_vals
。如果 multiple_val
的长度大于 1 那么它只会显示 f"We have found multiple keywords : {i_removed}"
.
- 否则显示
Definition
中对应的索引。
我有两个列表:
Keyword = ['Dog', 'Cat', 'White Cat', 'Lion', 'Black Cat']
Definition = ['Mans Best Friend', 'The cat is a domestic species of a small carnivorous mammal', 'White cats are cute', 'Lions are Carnivores Wild Animal', 'Black Cats are Black in color']
我通过以下命令在 'query' 中获得语音输入:
import speech_recognition as sr
def takeCommand():
r = sr.Recognizer()
with sr.Microphone() as source:
print("Listening...")
r.pause_threshold = 1
audio = r.listen(source)
try:
print("Recognizing...")
query = r.recognize_google(audio, language ='en-in')
print(f"User said: {query}\n")
except Exception as e:
print(e)
print("Unable to Recognize your voice.")
return "None"
return query
query = takeCommand().Capitalize()
现在,如果查询中包含 Dog 我想从列表中打印相应的定义,即“Man's Best Friend”,如果查询包含 Cat ,我想向用户显示有多个关键字具有 'Cat' 在其中,即 'Cat'、'White Cat'、'Black Cat',如果查询中的单词不在列表中,我想打印“未找到关键字,请检查您的关键字”
有没有人知道如何解决这个问题?
不同情况的输入输出:
输入:查询中有 'Dog'。该程序应检查是否有超过 1 个包含 Dog 的单词。如果是,它应该打印所有包含 Dog 的关键字,如果不是,那么它应该打印相应的定义。在这种情况下,关键字 Dog 的输出应该是相应的定义,即 'Mans Best Friend'.
输入:查询中有 'Cat'。在这种情况下,关键字有 3 个关键字,其中有 cat,即 'Cat' 、 'Black Cat'、'White Cat' 所以这里的代码应该打印这些关键字而不是它们的定义。所以这种情况的输出:我们找到了多个关键字:'Cat'、'Black Cat'、'White Cat'
输入:查询中有 'Panther'。关键字中没有 Panther 所以它应该打印“没有匹配的关键字”。
Keyword = ['Dog', 'Cat', 'White Cat', 'Lion', 'Black Cat']
Definition = ['Mans Best Friend', 'The cat is a domestic species of a small carnivorous mammal', 'White cats are cute', 'Lions are Carnivores Wild Animal', 'Black Cats are Black in color']
def take_cmd(cmd):
multiple_val=[]
if cmd in Keyword:
for i,j in enumerate(Keyword):
if cmd in j:
multiple_val.append((i,j))
if len(multiple_val)>1:
i_removed=[j for i in multiple_val for j in i if type(j)!=int]
print(f"We have found multiple keywords : {i_removed}")
else:
print(Definition[Keyword.index(cmd)])
else:
print("There are no Matching Keywords")
这段代码的作用是:
- 检查输入的值是否存在于
Keyword
中,如果不存在则return“没有匹配的关键字”。 - 如果该值存在,则将检查是否有多个实例或该值是否在多个索引中可用。
- 如果 return 也为真,则将其附加到
multiple_vals
。如果multiple_val
的长度大于 1 那么它只会显示f"We have found multiple keywords : {i_removed}"
. - 否则显示
Definition
中对应的索引。