> In terms of language proposals, you can't just say "don't need values > for"; the semantics have to be EITHER "consume and discard" OR "don't > consume". We already have a perfectly good way of spelling "consume > and discard": > > x, y, _ = iter >
You mean ( x, y, *_ = iter ) ? Since this has to be about non-consumption of the generator/iterator, > Ellipsis cannot be a zero-length deque. Thus this syntax would have to > be restricted to the *last* entry, and it then means "don't check for > more elements". > Yes, you are right to the *last* entry. (*last* depends on proposed syntax (spelling)). > The proposed semantics, if I understand you correctly, are: > > try: > _iter = iter(it) > x = next(_iter) > y = next(_iter) > except StopIteration: > raise ValueError > # no "else" clause, we're done here > Yes, "roughly" this semantics is proposed, with some assumptions on _iter = iter(it). As I can see at the moment, these cases should behave differently: >>> x, y = [1,2,3,4] # must raise ValueError >>> x, y = iter([1,2,3,4]) # should work But at the same time, it violates current situation. So maybe, as you have said we need special syntax. I will think about it. > Start by perusing PEP 1, and the template in PEP 12: > > https://www.python.org/dev/peps/pep-0001/ > https://www.python.org/dev/peps/pep-0012/ > > The PEP editors (myself included) are here to help you; don't hesitate > to reach out with questions. > Thank you! With kind regards, -gdg
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/