GOOGLE ADS

четверг, 14 апреля 2022 г.

как игнорировать одно и то же значение ключа в словаре? (Питон)

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!")

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...