如何使用迭代器将lambda函数列表应用于单个元素?

arf*_*nha 3 python lambda iterator yield list

我想使用必须用yield创建的iterable将lambda函数列表应用于单个元素.

lambda函数列表将具有类似于:

[<function <lambda> at 0x1d310c8>, <function <lambda> at 0x1d355f0>]
Run Code Online (Sandbox Code Playgroud)

我想使用yield来构造一个迭代来迭代列表,从左到右将每个函数应用到单个元素

Ste*_*ski 7

def apply_all(functions, item):
    for f in functions:
        yield f(item)
Run Code Online (Sandbox Code Playgroud)

用法示例:

functions = [type, id, hex]
for result in apply_all(functions, 55):
    print result
Run Code Online (Sandbox Code Playgroud)

<type 'int'>
20326112
0x37
Run Code Online (Sandbox Code Playgroud)