Skip to main content
 首页 » 编程设计

python之当需要其他变量时如何解包元组

2025年05月04日12thcjp

根据 this ,我可以使用包含这些参数的元组调用一个带有 N 个参数的函数,使用 f(*my_tuple)。

有没有办法结合解包和解包变量?

类似于:

def f(x,y,z):... 
a = (1,2) 
f(*a, 3) 

请您参考如下方法:

您提供的代码 (f(*a, 3)) 对 python 3 有效。对于 python 2,您可以通过添加额外的值来创建一个新的元组。然后解压新的元组。

例如,如果您有以下函数 f:

def f(x, y, z): 
    return x*y - y*z 
 
print(f(1,2,3)) 
#-4 

尝试您的代码会导致 python 2 出错:

a = (1,2) 
print(f(*a,3)) 
#SyntaxError: only named arguments may follow *expression 

所以只需创建一个新的元组:

new_a = a + (3,) 
print(f(*new_a)) 
#-4 

更新

我还应该添加另一个选项,即在 * 表达式之后传递一个 named 参数(如 SyntaxError 中所述):

print(f(*a, z=3)) 
#-4