把一张单子分成第一张,然后休息?

2024-04-25 14:39:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在Python 3中我可以做到:

first, *rest = l

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

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

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


Tags: restfirst
3条回答
first, rest = l[0], l[1:]

基本上是一样的,只不过是一条单行线。元组分类岩石。

这有点长,不太明显,但对所有iterable都是通用的(而不是仅限于可切片的):

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

还有一个,使用Python2.7。只是使用一个中间函数。逻辑上,新行为模拟了函数参数传递的情况。

li = [1, 2, 3]
first, rest = (lambda x, *y: (x, y))(*li)

你可以的

first = l.pop(0)

然后l就是剩下的。不过,它会修改你原来的列表,所以也许这不是你想要的。

相关问题 更多 >

    热门问题