Вы можете break
из for
l oop, если найдете совпадение, а затем использовать else
после for
l oop, чтобы обозначить выполнение некоторого кода, если for
l oop достиг конца без break
.
while True:
command = input()
if command == 'End':
break
(employer,id_worker) = command.split(' -> ')
for key,values in company_dict.items():
if employer == key and id_worker in values:
break
else:
if employer not in company_dict:
company_dict[employer] = []
company_dict[employer].append(id_worker)
Это будет более эффективно, чем то, что есть у вас, потому что вы прекращаете поиск после первого совпадения - как из-за break
из явного l oop и тот факт, что выражение id_worker in values
перестанет повторяться при первом совпадении. (Здесь использование in
для тестирования включения также позволяет избежать использования явного l oop для итерации над values
, поэтому также может быть немного быстрее по этой причине.)