Pythonic的方式分裂成一个列表,rest?

我想在Python 3中,我将能够做到:

first, *rest = l 

这正是我想要的,但我使用的是2.6。 现在我正在做:

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

这很好,但我只是想知道是否有更优雅的东西。

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

基本上是一样的,除了它是一个oneliner。 Tuple分配岩石。

这有点长,不太明显,但对于所有迭代(而不是限于片段)来说是普遍的:

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

你可以做

 first = l.pop(0) 

然后l会rest。 它修改你的原始列表,所以也许这不是你想要的。

我会build议:

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