if else inside for loop 查询多个字典
if else inside for loop consulting multiple dictionaries
我在使用以下代码时遇到问题,因为我正在检查多个词典中的值。
当找不到这个值时,我得到了 'not found' 的多个打印件。 else 语句应该检查所有词典并在检查所有词典而不是每个词典后打印 'not found'。
class Catalog:
def __init__(self):
self.movies_list = [
{'Titulo:': 'The Ring', 'Autor:': 'random_guy', 'Genero:': 'Horror', 'Duracion:': '115 Minutos',
'Anio:': '2002',
'Rating:': '7.1/10'},
{'Titulo:': 'Locos por la progra', 'Autor:': 'other_guy', 'Genero:': 'Comedy', 'Duracion:': '90 Minutos',
'Anio:': '2000', 'Rating:': '10/10'}]
#self.user_input
self.x = 'The Ring'
def search(self):
for dict in self.movies_list:
for i in dict.items():
#self.user_input
if self.x in i:
print(dict['Titulo:'])
else:
print('not found')
break
catalog = Catalog()
catalog.search()
创建一个布尔值 found
,如果找到键,则将值设置为 True。在 for 循环之后检查变量是否为 True。如果为false,则什么都不做,否则打印未找到。
我不确定语法,但它应该是这样的:
def search(self):
boolean found = False
for dict in self.movies_list:
for i in dict.items():
#self.user_input
if self.x in i:
print(dict['Titulo:'])
found = True
if not found:
print('not found')
如果你想在第一场比赛之后休息,你可以添加两个休息时间,一个在found = True
之后,另一个在outer for loop
之后,如if found: break
另一个选项是 return 如果您键入匹配的输入,则从该方法。如果没有找到,则在末尾打印 'not found'
def search(self):
for dict in self.movies_list:
for i in dict.items():
#self.user_input
if self.x in i:
print(dict['Titulo:'])
return;
print('not found')
我在使用以下代码时遇到问题,因为我正在检查多个词典中的值。
当找不到这个值时,我得到了 'not found' 的多个打印件。 else 语句应该检查所有词典并在检查所有词典而不是每个词典后打印 'not found'。
class Catalog:
def __init__(self):
self.movies_list = [
{'Titulo:': 'The Ring', 'Autor:': 'random_guy', 'Genero:': 'Horror', 'Duracion:': '115 Minutos',
'Anio:': '2002',
'Rating:': '7.1/10'},
{'Titulo:': 'Locos por la progra', 'Autor:': 'other_guy', 'Genero:': 'Comedy', 'Duracion:': '90 Minutos',
'Anio:': '2000', 'Rating:': '10/10'}]
#self.user_input
self.x = 'The Ring'
def search(self):
for dict in self.movies_list:
for i in dict.items():
#self.user_input
if self.x in i:
print(dict['Titulo:'])
else:
print('not found')
break
catalog = Catalog()
catalog.search()
创建一个布尔值 found
,如果找到键,则将值设置为 True。在 for 循环之后检查变量是否为 True。如果为false,则什么都不做,否则打印未找到。
我不确定语法,但它应该是这样的:
def search(self):
boolean found = False
for dict in self.movies_list:
for i in dict.items():
#self.user_input
if self.x in i:
print(dict['Titulo:'])
found = True
if not found:
print('not found')
如果你想在第一场比赛之后休息,你可以添加两个休息时间,一个在found = True
之后,另一个在outer for loop
之后,如if found: break
另一个选项是 return 如果您键入匹配的输入,则从该方法。如果没有找到,则在末尾打印 'not found'
def search(self):
for dict in self.movies_list:
for i in dict.items():
#self.user_input
if self.x in i:
print(dict['Titulo:'])
return;
print('not found')