寻找一个类似民间的习语

2024-06-01 07:29:16 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我的朋友给我提出了一个需要解决的问题,我现在正在用函数式Python编写一个解决方案。这个问题本身不是我的问题;我在寻找一个可能的习语,但我目前找不到。你知道吗

我需要的是一个fold,但是它不会对它的每个应用程序使用相同的函数,而是像map一样耗尽另一个包含函数的列表。例如,给定以下代码:

nums = [1, 2, 3]
funcs = [add, sub]
special_foldl(nums, funcs)

函数(special_foldl)将用((1+2)-3)向下折叠数字列表。有没有一个函数/习惯用法可以优雅地做到这一点,或者我应该自己滚吗?你知道吗


Tags: 函数代码add应用程序map列表朋友数字
1条回答
网友
1楼 · 发布于 2024-06-01 07:29:16

Python标准库中没有这样的函数。你得自己滚,也许是这样的:

import operator
import functools

nums = [1, 2, 3]
funcs = iter([operator.add, operator.sub])

def special_foldl(nums, funcs):
    return functools.reduce(lambda x,y: next(funcs)(x,y), nums)

print(special_foldl(nums, funcs))
# 0

相关问题 更多 >