我想在Python中的列表上进行一些模式匹配。例如,在Haskell,我可以做类似如下:Python中列表的模式匹配
fun (head : rest) = ...
所以,当我通过列表中,head
将是第一个元素,rest
会后缘元件。
同样,在Python,我可以自动解压缩的元组:
(var1, var2) = func_that_returns_a_tuple()
我想做的事情在Python中的列表类似的东西。现在,我有一个返回列表的功能,代码块,它具有下列功能:
ls = my_func()
(head, rest) = (ls[0], ls[1:])
我想知道如果我能以某种方式做,在Python中的一行,而不是两个。
当然,你可以把拉姆达在同一行与其他一切: 头,其余部分=( lambda lst:(lst [0],lst [1:]))(my_func()) – 2008-10-26 15:54:39
是的,但开始濒临混淆。 – 2008-10-27 13:01:45
+1为Python 3新功能并链接到PEP。 – fossilet 2013-08-27 03:55:50