X''*_*X'' 2 python wolfram-mathematica
我想知道,python -let中是否有一个函数现在调用它apply- 它执行以下操作:
apply(f_1, 1) = f_1(1)
apply(f_2, (1, 2)) = f_1(1, 2)
...
apply(f_n, (1, 2,..., n)) = f_n(1, 2,..., n) # works with a tuple of proper length
Run Code Online (Sandbox Code Playgroud)
因为它确实存在于例如.A +和Mathematica以前它对我来说真的很有用.干杯!
您可以使用*运算符获得相同的效果:
f_1(*(1, 2)) = f_1(1, 2)
...
Run Code Online (Sandbox Code Playgroud)
后面的表达式*不必是元组,它可以是任何计算结果的表达式.
Python还有一个内置apply函数,可以满足您的期望,但是*自Python 2.3以来,它已经过时,有利于运算符.如果apply由于某种原因需要并且想要避免弃用的污点,那么实现一个是微不足道的:
def my_apply(f, args):
return f(*args)
Run Code Online (Sandbox Code Playgroud)
Python具有语言级功能,称为"参数解包",或者只是"splat".
# With positional arguments
args = (1, 2, 3)
f_1(*args)
# With keyword arguments
kwargs = {'first': 1, 'second': 2}
f_2(**kwargs)
Run Code Online (Sandbox Code Playgroud)