Python 将函数列表应用于值的名称?

Python 将函数列表应用于值的名称?,python,functional-programming,Python,Functional Programming,通常,您会考虑将一个函数应用于一个值列表,从而创建一个新列表(关联的Python函数是map)。但是,如果将函数列表应用于一个值,从而创建一个新值,该怎么办?例如: allCaps = lambda s: s.upper() exclaim = lambda s: s + '!' quote = lambda s: '"' + s + '"' funcs = [allCaps, exclaim, quote] value = 'hello' for f in funcs: value

通常,您会考虑将一个函数应用于一个值列表,从而创建一个新列表(关联的Python函数是
map
)。但是,如果将函数列表应用于一个值,从而创建一个新值,该怎么办?例如:

allCaps = lambda s: s.upper()
exclaim = lambda s: s + '!'
quote = lambda s: '"' + s + '"'

funcs = [allCaps, exclaim, quote]
value = 'hello'
for f in funcs:
    value = f(value)
print(value) # "HELLO!"
这类操作(类似于map、filter、reduce)有名称吗?

您可以使用它,只需将“hello”作为初始值(
reduce(function,sequence[,initial])
)传递即可:


我知道如何实现这一点(谢谢),但我想知道是否有专门用于此操作的名称-reduce比这更通用。
map
reduce
是此类操作的名称。列表元素用作函数不会改变任何事情。我以这种方式使用了
map
reduce
fold
)。
>>> reduce(lambda x, y: y(x), funcs, 'hello')
'"HELLO!"'