Sous Python 3.x, vous pouvez le faire bien:
>>> head, *tail = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
>>> head
1
>>> tail
[1, 2, 3, 5, 8, 13, 21, 34, 55]
Une nouvelle fonctionnalité de 3.x est l'utilisation de l' *
opérateur au déballage, à la moyenne de toutes les valeurs supplémentaires. Il est décrit dans le PEP 3132 - Étendue Itérable Déballage. Cela a aussi l'avantage de travailler sur n'importe quel itérable, et pas seulement des séquences.
C'est aussi vraiment lisible.
Comme décrit dans le PEP, si vous voulez faire l'équivalent de moins de 2.x (sans risquer de faire une liste temporaire), vous devez faire ceci:
it = iter(iterable)
head = it.next()
tail = list(it)
Naturellement, si vous travaillez sur une liste, le moyen le plus facile sans le 3.x la syntaxe est:
head, tail = seq[0], seq[1:]