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

时间:2013-04-19 00:08:12

标签: python

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

foo_bar = (123, 546)

def a(foo, bar):
    print(foo)
    print(bar)

是否可以执行以下操作:

a(foo_bar)

而不是:

a(foo_bar[0], foo_bar[1])

这样做的pythonic方式是什么?

1 个答案:

答案 0 :(得分:16)

你想要的是:

a(*foo_bar)

有关详细信息,请参阅教程中的Unpacking Argument Lists ...但实际上没有比此更多的内容。

为完整起见,参考文档位于Calls

  

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