
I don't think this will fly - if not for any other reason, it is a very rare pattern to take place alongside such important flow-control statements as continue and break But for your convenience, here is a small wrapper that, along with the walrus operator, could be used when you need that functionality: ``` class Repeatable: def __init__(self, it): self.it = it self.repeat_last = False self.last_item = None def repeat(self): self.repeat_last = True def __iter__(self): for item in self.it: while self.repeat_last: self.repeat_last = False yield self.last_item self.last_item = item yield item test = 1 for x in (rx:=Repeatable(range(3))): print(x) if x == test: test = -1 rx.repeat() ``` On Thu, Jan 26, 2023 at 4:41 PM Thomas Ratzke <thomasratzketr@outlook.de> wrote:
Hi all,
i would like to suggest the following Python feature. It naturally happens that one want's to repeat the current iteration of a for loop for example after an error happened. For this purpose, I usually set a flag and put a while loop inside my for loop. A simple "repeat" statement just like "continue" or "break" would make the code much more readable.
This is my solution at the moment with A being checked:
for _ in range(n): flag = True while flag: ... if A: flag = False # go to next iteration
I would suggest the repeat statement in the following sense
for _ in range(n): ... if not A: repeat # repeat current iteration
Notice the "not" in the if clause. I am really looking forwars to hear your opinions.
Best regards Thomas
_______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-leave@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/LNER4MH6... Code of Conduct: http://python.org/psf/codeofconduct/