Python 如何获得第一对元素和余数?

Python 如何获得第一对元素和余数?,python,syntax,python-2.x,Python,Syntax,Python 2.x,是否可以在Python中执行类似的操作: a, b, *c = [1,2,3,4] 在哪里 ? 我发现最简洁的方法是: l = [1,2,3,4] a, b = l[:2] c = l[2:] 如前所述,在3.x中,您的psuedocode工作正常。2.x中更通用的方法是: x = iter(rhs) a, b, c = next(x), next(x), list(x) 这样做的优点是可以处理所有的iterables,而不仅仅是序列,因此更接近3.x行为 编辑:由于某种原因,DSM的答案

是否可以在Python中执行类似的操作:

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

?

我发现最简洁的方法是:

l = [1,2,3,4]
a, b = l[:2]
c = l[2:]
如前所述,在3.x中,您的psuedocode工作正常。2.x中更通用的方法是:

x = iter(rhs)
a, b, c = next(x), next(x), list(x)
这样做的优点是可以处理所有的iterables,而不仅仅是序列,因此更接近3.x行为

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

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

x = iter(rhs)
a, b, c = next(x), next(x), list(x)
这样做的优点是可以处理所有的iterables,而不仅仅是序列,因此更接近3.x行为


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

这正是Python 3的行为,请参见。Python 2一行是a,b,c=l[:2],l[2],只有当lenl>=2时才有效。@Bo102010:Oh!哈!我在2.x中尝试过它,认为这是它的逻辑语法,但它不起作用:-这正是Python3的行为,请参见。Python2一行是a,b,c=l[:2],l[2:],它只在lenl>=2时起作用。@Bo102010:Oh!哈!我在2.x中尝试过它,认为这是它的逻辑语法,但它不起作用:-