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

Unpack positional arguments from data structure in Python

鉴于:

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

x = [1,2]y = 3。我怎样才能做一个等价物。

我不想做x[0], x[1],因为函数返回x,并且两次调用它将是无效的。一个人能做一件事吗?其中z = x。然后做z[0]z[1]

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

另外,不使用包装。

编辑:不能使用名称,因为我没有实现函数,函数编写器没有使用命名参数:./


您可以这样做:

1
psum(*x + [y])


在这种情况下,你的论点的顺序并不重要,所以psum(3,*x)会起作用。

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

1
psum(*x,c=3)

似乎对我也有用,但如果定义sum以使它需要varargs,它就不起作用了。

我认为在完全一般的情况下,没有办法不修改传递给psum的对象就可以做到这一点:

1
2
x.append(3)
psum(*x)