使用数据结构传递多个参数

man*_*oid 2 python

是否可以使用单个数据结构传递给具有多个参数的函数?我想做类似以下的事情,但它似乎不起作用.

foo_bar = (123, 546)

def a(foo, bar):
    print(foo)
    print(bar)
Run Code Online (Sandbox Code Playgroud)

是否可以执行以下操作:

a(foo_bar)
Run Code Online (Sandbox Code Playgroud)

代替:

a(foo_bar[0], foo_bar[1])
Run Code Online (Sandbox Code Playgroud)

这样做的pythonic方法是什么?

aba*_*ert 16

你想要的是:

a(*foo_bar)
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅教程中的解压缩参数列表 ...但实际上没有比此更多的内容.

为完整起见,参考文档在Calls中:

如果语法*expression出现在函数调用中,则expression必须求值为iterable.来自此迭代的元素被视为它们是附加的位置参数; 如果存在位置参数x1,...,xN,并且expression求值为序列y1,...,yM,则这相当于具有M + N个位置参数x1,...,xN,y1,...的调用. .,yM.