gpt4 book ai didi

Python:args 的一些函数 -> *args(类似于 functools 中的函数)

转载 作者:行者123 更新时间:2023-11-28 22:06:07 25 4
gpt4 key购买 nike

我有这些实现:

def vecAdd(v1, v2): return tuple(map(add, izip(v1,v2)))
def vecMul(v1, f): return tuple(map(mul, izip(v1,repeat(f))))

那些不起作用,因为 add(和 mul)被称为 add((x,y)),即它只获取一个参数。

是否有一些功能基本上执行以下操作?

def funccaller_with_exposed_args(func):
return lambda args: func(*args)

在这种情况下,也许这是矫枉过正和过度设计,但总的来说,如果您可以将完整的重循环布局到纯 C 代码中,那么这在性能方面可能非常重要。

最佳答案

你可以用 itertools.starmap 做到这一点或 itertools.imap .imapstarmap 类似,只是它首先压缩参数。因此,您可以使用 imap 而不是自己调用 izip:

import itertools as it
def vecAdd(v1, v2): return tuple(it.imap(add, v1, v2))
def vecMul(v1, f): return tuple(it.imap(mul, v1, it.repeat(f)))

关于Python:args 的一些函数 -> *args(类似于 functools 中的函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4258992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com