Sah*_*lra 1 python lambda python-2.7 python-3.x
注意:我确实在SO上进行搜索,但是只能找到与打印第n个斐波那契数有关的问题。例如斐波那契数,在Python 3中有一个内衬?
我有以下工作解决方案:
A.使用lambda()+ reduce():
Run Code Online (Sandbox Code Playgroud)>>> fib = lambda n: reduce(lambda x, _: x+[x[-1]+x[-2]], range(n-2), [0, 1]) >>> fib(10) >>> [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
注意:无法使用x.append(x [-1] + x [-2])。给出AttributeError(不知道为什么)
B.使用lambda()+ map():(必须使用变量作为结果)
Run Code Online (Sandbox Code Playgroud)>>> result = [0,1] >>> fib = lambda n: map(lambda _: result.append(result[-1] + result[-2]), xrange(n-2)) >>> fib(10) ## Ignore its output ## >>> result ## Stores the result ## >> [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]