Предположим, что я перебираю итерацию и хотел бы предпринять некоторые действия, если итератор пуст.Вот два лучших способа сделать это:
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
Первый зависит от того, является ли итерируемая коллекция коллекцией (поэтому бесполезно, когда итерируемаяпередается в функцию / метод, где находится цикл), а второй устанавливает empty
при каждом проходе через цикл, что выглядит некрасиво.
Есть ли другой способ, который я пропускаю, или вторая альтернатива самая лучшая?Было бы здорово, если бы было какое-то предложение, которое я мог бы добавить в оператор цикла, который бы обрабатывал это для меня так же, как else
заставляет флаги not_found
исчезнуть.
Я не ищу умных хаков.
Я не ищу решений, которые содержат много кода
Я ищу простую языковую функцию.Я ищу clear и pythonic способ перебора итерируемого и выполнения некоторых действий, если итерируемое пусто, что будет понятно любому опытному программисту на python.Если бы я мог сделать это без установки флага на каждой итерации, это было бы фантастически.Если нет простой идиомы, которая делает это, тогда забудьте об этом.