Search code examples
pythonlistsplitpython-2.x

Pythonic way to split a list into first and rest in Python 2.x?


I think in Python 3 I'll be able to do:

first, *rest = l

which is exactly what I want, but I'm using 2.6. For now I'm doing:

first = l[0]
rest = l[1:]

This is fine, but I was just wondering if there's something more elegant.


Solution

  • first, rest = l[0], l[1:]
    

    Basically the same, except that it's a oneliner. Tuple assigment rocks.

    This is a bit longer and less obvious, but generalized for all iterables (instead of being restricted to sliceables):

    i = iter(l)
    first = next(i) # i.next() in older versions
    rest = list(i)