On 12/11/2011 6:44 PM, Eelco Hoogendoorn wrote:

Can you come up with some terse symbols that will be able to express all
of the below and dont make you wish you hadnt rather typed out the names?

head, tuple(tail) = iterable
head, list(tail) = iterable
head, str(tail) = somestring
head, generator(tail) = mygenerator

The above examples are seldom needed in Python because we have one general method to repeatedly split a sequence into head and tail.

it = iter(iterable) # 'it' now represents the sequenced iterable
head = next(it) # 'it' now represents the tail after removing the head

In other words, next(it) encompasses all of your examples and many more.
Because 'it' is mutated to represent the tail, it does not need to be rebound and therefore is not.

Iterable unpacking with a *target for leftovers is an entirely different use case.

--
Terry Jan Reedy

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to