mae*_*mae 3 python functional-programming
是)我有的:
array = original_array[:]
result = reduce(lambda a,b: some_function(b,array), array)
Run Code Online (Sandbox Code Playgroud)
我想要的是:
我想摆脱array = original_array [:]语句.理想情况下,我只需用original_array [:] 替换reduce()中的数组参数,但我也需要在lambda中使用它.有没有办法从lambda中引用 数组参数?
以下是不可接受的解决方案,因为它为每个元素创建一个新的数组副本:
result = reduce(lambda a,b: some_function(b,original_array[:]), original_array[:])
Run Code Online (Sandbox Code Playgroud)
我需要这样的东西:
result = reduce(lambda a,b: some_function(b,reduce_parameter), original_array[:])
Run Code Online (Sandbox Code Playgroud)
你可以将整个东西包装在另一个lambda中:
result = (lambda array: reduce(lambda a,b: some_function(b,array), array))(original_array[:])
Run Code Online (Sandbox Code Playgroud)
但是我认为你的原始解决方案更可取,因为它更具可读性.