python - 匹配数组返回值

gut*_*rie 2 python list

我想做一个类似于模式匹配的函数来获取前两个元素,然后数组的其余部分返回值.

例如,假设perms(x)返回值列表,我想这样做:

seq=perms(x)
a = seq[0]
b = seq[1]
rest = seq[2:]
Run Code Online (Sandbox Code Playgroud)

我当然可以缩短到:

[a,b] = seq[0:2]
rest  = seq[2:]
Run Code Online (Sandbox Code Playgroud)

我可以使用一些符号来做到这一点吗?

[a,b,more] = perms(x)
Run Code Online (Sandbox Code Playgroud)

或概念上:

[a,b,more..] = perms(x)
Run Code Online (Sandbox Code Playgroud)

PROLOG和函数式语言确实列出了这样的分解!

Aym*_*ieh 6

你可以在Python 3中这样做:

(a, b, *rest) = seq
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅扩展的可迭代解包PEP.