как мне сделать так, чтобы поиск по ключу 'a' в случае если такого значения нет в списке словарей выдавал print только один раз, а не для каждого словаря в списке?
Код:
delete = str(input('Enter name of programm for delete: ')) for app in range(len(list)): if list[app]['a'] == delete: del list[app] json.dump(list, open('list_files', 'w')) print(f'{delete} deleted from sync. list') break
если добавлю сюда:
Код:
else: print(f'{delete} not found in list')
то сообщение выводится для каждого app. а мне нужно чтоб вывелось только 1 раз.
Member
Статус: Не в сети Регистрация: 13.05.2011 Откуда: Санкт-Петербург
Billy-no-mates Хз насколько это правильно, но попробуй логический переключатель воткнуть:
Код:
flag = True for app in range(len(list)): if list[app]['a'] == delete: del list[app] json.dump(list, open('list_files', 'w')) print(f'{delete} deleted from sync. list') flag = False break if flag: print(f'{delete} not found in list')
Ребята, извиняюсь за оффтоп. Сыну 12 лет. Весь мозг мне выклевал обучением на питоне. Где можно взять обучение этому языку? Желательно на халяву. Сам ничего не соображаю, желательно, чтобы он сам мог учиться?
Member
Статус: Не в сети Регистрация: 18.04.2011 Откуда: Пушкин
Используйте функцию и return вместо break
Код:
def delete_foo(inp_list): delete = str(input('Enter name of programm for delete: ')) for i_app, app in enumerate(my_list): if app['a'] == delete: del inp_list[i_app] json.dump(inp_list, open('list_files', 'w')) print(f'{delete} deleted from sync. list') return inp_list print(f'{delete} not found in list') return inp_list
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения