1

是否可以在 Python 中做这样的事情:

a, b, *c = [1,2,3,4]

在哪里

a = 1
b = 2
c = [3,4]

?

我发现的最紧凑的方法是:

l = [1,2,3,4]
a, b = l[:2]
c = l[2:]
4

1 回答 1

4

正如DSM 的回答所述,在 3.x 中,您的伪代码工作正常。2.x 中更通用的方法是:

x = iter(rhs)
a, b, c = next(x), next(x), list(x)

这具有处理所有可迭代对象的优势,而不仅仅是序列,因此更接近 3.x 行为。

编辑:DSM 的答案由于某种原因被删除,但它表示在 3.x 中,a, b, *c = rhs是完全有效的代码,产生了预期的结果。

于 2013-04-13T19:54:14.690 回答