从Python中的数据结构解压缩位置参数

时间:2012-10-12 18:13:34

标签: python

下式给出:

def psum(a,b,c):
    return a**b+c

x = [1,2]以及y = 3 我该怎么做psum(*x,3) - >相当于。

我不想做x[0], x[1],因为函数返回x并且调用它两次会效率低下。可以做z = function(a)。其中z = x。然后执行z[0]z[1]

但我想知道是否可以这样做,并以这种方式使用位置参数。

此外,没有使用包装器。

编辑:一个人不能使用名称,因为我没有实现该函数,函数编写者没有使用命名参数:/

2 个答案:

答案 0 :(得分:2)

你可以这样做:

psum(*x + [y])

答案 1 :(得分:1)

在这种情况下,参数的顺序无关紧要,因此psum(3,*x)将起作用。

在稍微更一般的情况下,如果您知道参数的名称,

psum(*x,c=3)

对我来说似乎也有用,但是如果sum被定义以便它需要varargs就行不通......

在没有修改传递给psum的对象的情况下,我认为没有办法在完全一般的情况下执行此操作:

x.append(3)
psum(*x)