Python将tuple应用于functional中的函数工具Z.pip

2024-05-19 01:13:03 发布

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

我想使用一个函数,它接受工具Z.管道,但数据输入是一个元组。我知道如何解决它,但我认为在内置的python库或toolz中肯定有一些解决方案,我只是找不到它。你知道吗

示例:

def my_func(a, b):
    return a + b

result = pipe(
    (10, 20),
    my_func,
    ...,
)

For those unfamiliar with toolz, pipe is something like:

def pipe(val, *functions):
    data = val
    for fn in functions:
        data = fn(data)
    return data

我尝试的是:

我知道如何解决这个问题,例如:

result = pipe(
    (10, 20),
    lambda x: my_func(*x),
    ...,
)

但我觉得这很难看,我希望能够使用某种apply 封装lambda的函数。我这样定义我的apply_

from toolz import pipe

def my_func(a, b):
    return a + b

def apply_(func):
    return lambda x: func(*x)

result = pipe(
    (10, 20),
    apply_(my_func),
)
print(result)

但这看起来很基本,我几乎确信它一定存在 在内置python库或toolz包中。。你知道吗

问题:

是否有某种形式的apply包装器像我上面描述的(apply_),它 我忽略了什么?你知道吗


Tags: lambda函数datareturnmydefvalresult
1条回答
网友
1楼 · 发布于 2024-05-19 01:13:03

例如:

import toolz
import itertools

def my_func(a, b):
    return a + b


list(toolz.pipe(
    [(10, 20), (30, 40)],
    toolz.curry(itertools.starmap)(my_func)
))

输出:

[30, 70]

编辑 我最初的解决方案是错误的,但我认为^{}'s ^{}是正确的。你知道吗

相关问题 更多 >

    热门问题