Предположим, что я перебираю итерацию и хотел бы предпринять некоторые действия, если итератор пуст. Вот два лучших способа сделать это:
for i in iterable:
# do_something
if not iterable:
# do_something_else
и
empty = True
for i in iterable:
empty = False
# do_something
if empty:
# do_something_else
Первый из них зависит от того, что итерируемое является коллекцией (поэтому бесполезно, когда итерируемое передается в функцию / метод, где находится цикл). а второй устанавливает пустым
при каждом проходе по петле, что выглядит некрасиво.
Есть ли другой способ, по которому я скучаю, или вторая альтернатива - лучшая? Было бы здорово, если бы было какое-то предложение, которое я мог бы добавить в оператор цикла, который бы обрабатывал это для меня так же, как , иначе
заставит флаги not_found
исчезнуть.
Я не ищу умных хаков. Я ищу ясный и питонический способ итерации по итерируемой и предпринять некоторые действия, если итерируемая пуста, что будет понятен любому опытному программисту на python. Если бы я мог сделать это без установки флага на каждой итерации, это было бы фантастически. Если не существует простой идиомы, которая делает это, тогда забудьте об этом.