Pythonic способ разбить список на первый и отдохнуть?

Я думаю, что в Python 3 я смогу сделать:

first, *rest = l 

это именно то, что я хочу, но я использую 2.6. Пока я делаю:

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

Это прекрасно, но мне просто интересно, есть ли что-то более элегантное.

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

В основном то же самое, за исключением того, что это oneliner. Корреспондентские породы.

Это немного длиннее и менее очевидно, но обобщается для всех повторений (вместо того, чтобы ограничиваться срезами):

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

Ты можешь сделать

 first = l.pop(0) 

и тогда я l . Однако он изменяет ваш первоначальный список, поэтому, возможно, это не то, что вы хотите.

Я бы предложил:

 first, remainder = l.split(None, maxsplit=1)