这应该是一个简单的问题:如何在Python中将函数应用于元组?
即:
Python 3.9.9 (main, Nov 16 2021, 09:34:38)
[Clang 13.0.0 (clang-1300.0.29.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> def g(a,b):
... return a+b
...
>>> tup = (3,4)
>>>
>>> g(tup)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: g() missing 1 required positional argument: 'b'
>>> g.apply(tup)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'function' object has no attribute 'apply'
>>> apply(g,tup)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'apply' is not defined
g
它需要一个元组,甚至是一个转换函数,用于一般的2-arg函数:
>>> def conv2(fun):
... def tuplefun(tup):
... (a,b) = tup
... return fun(a,b)
... return tuplefun
...
>>> tuple_g = conv2(g)
>>> tuple_g(tup)
7
... 但这不适用于任意算术函数的一般情况。
(ObResearch:我搜索了大约五分钟这个问题的答案,发现了一大堆关于熊猫数据帧的问题,但没有一个似乎能回答这个问题。我相信这有一个简单的答案,我为没有找到它而道歉,但如果我没有找到它,那么可能还有很多其他问题……换句话说,这是“问题#XXXXX的副本”(这里非常欢迎。)
(讽刺的是,我最喜欢的问题是
完全一样的问题
关于Scala语言,从2010年开始。我想我在生活中扮演的角色是函数式程序员袭击其他语言…?)