Answers:
myfun(*some_tuple)
完全符合您的要求。的*
操作者只需解包元组(或任何可迭代),并把它们作为位置函数的自变量。阅读有关解压缩参数的更多信息。
请注意,您还可以扩展参数列表的一部分:
myfun(1, *("foo", "bar"))
some_func(*tuple_of_stuff, another_argument)
def func(a,b,c,d): print(a,b,c,d)
与args = ('fee', 'fi', 'fo'); func(*args, 'fum')
这是功能编程方法。它从语法糖中提升了元组扩展功能:
apply_tuple = lambda f, t: f(*t)
用法示例:
from toolz import *
from operator import add, eq
apply_tuple = curry(apply_tuple)
thread_last(
[(1,2), (3,4)],
(map, apply_tuple(add)),
list,
(eq, [3, 7])
)
# Prints 'True'
咖喱的redefiniton apply_tuple
节省了大量的partial
,从长远来看通话。
lambda f, t: f(*t)
不使用第三方模块,我是Python初学者,这对我很有帮助。这是一种纯功能方法。如果您不使用此样式,则此答案不适合您。
starmap
docs.python.org/3.7/library/itertools.html#itertools.starmap