cnt_lst = { 'Jojo': {'Name ': "Jojo",
'Phone': "0896",
'Email': "Jojo@email.com"},
'Johan': {'Name ': "Johan",
'Phone': "0878",
'Email': "2@email.com"},
'John': {'Name ': "John",
'Phone': "0815",
'Email': "3@email.com"}
}
search = "jo"
info = False
for key, value in cnt_lst.items():
for subject, score in value.items():
if search in score:
info = True
print("=" * 20)
for subject, score in value.items():
print(subject,': ',score)
if not info:
print("\nNo info was found!")
Вывод приведенного выше кода:
====================
Name: Jojo
Phone: 0896
Email: Jojo@email.com
====================
Name: Jojo
Phone: 0896
Email: Jojo@email.com
вместо этого я хочу, чтобы это было:
====================
Name: Jojo
Phone: 0896
Email: Jojo@email.com
Я считаю, что это происходит потому, что когда я ищу «jo», есть 2 значения «jo», которые находятся в «Имени» и «Электронной почте».
Итак, как я могу игнорировать один из них?
Решение проблемы
Это связано с тем, что ваш код будет продолжать работать, даже если значение будет найдено.
Вы можете просто добавить разрыв, если значение было найдено.
cnt_lst = { 'Jojo': {'Name ': "Jojo",
'Phone': "0896",
'Email': "Jojo@email.com"},
'Johan': {'Name ': "Johan",
'Phone': "0878",
'Email': "2@email.com"},
'John': {'Name ': "John",
'Phone': "0815",
'Email': "3@email.com"}
}
search = "jo"
info = False
for key, value in cnt_lst.items():
for subject, score in value.items():
if search in score:
info = True
print("=" * 20)
for subject, score in value.items():
print(subject,': ',score)
break # -- Edited
if not info:
print("\nNo info was found!")
Комментариев нет:
Отправить комментарий