[持续更新]Python 技巧

本文以 Python 2.7 为基础。

 

lambda 函数实现递归

方法一:传递一个 self 参数

求阶乘:

1 frac = lambda self, x: self(self, x - 1) * x if x > 1 else 1
2 print frac(frac, 4)

方法二(匿名函数也可以实现递归):将一个完整的 lambda 函数体作为参数

求最大公因数:

(lambda a, b, s = lambda a, b, f: f(b, a % b, f) if b else a: s(a, b, s))(3, 5)

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。