You need to enable JavaScript to run this app. 如何将列表拆包后作为参数传入多变量Python函数?
优惠活动
大模型
产品
解决方案
定价
更多

如何将列表拆包后作为参数传入多变量Python函数?

解决方案

Python 原生自带序列解包能力,不需要额外定义 f 函数就能实现你的需求:传参时给列表变量加 * 前缀,就会自动把列表拆分为独立的位置参数传入函数,完全不用手动写索引取值:

def abc(x, y):
    return x + y

z = [6, 5]
# 效果完全等同于 abc(z[0], z[1])
print(abc(*z)) # 输出结果为 11

如果你必须严格使用 abc(f(z)) 的调用形式,需要注意:原 abc 定义为接收2个位置参数,直接传入单个参数会触发参数数量不匹配的报错,因此需要做少量调整,可选两种方案:

  • 方案1:修改原 abc 函数,使其支持接收列表类型的单个参数
def abc(args):
    x, y = args
    return x + y

z = [6, 5]
# 此时f只需原样返回输入即可
f = lambda x: x
print(abc(f(z))) # 输出 11
  • 方案2:不改动原 abc 函数,用装饰器对其做包装,自动完成解包逻辑
def unpack_decorator(func):
    def wrapper(args):
        return func(*args)
    return wrapper

def abc(x, y):
    return x + y

# 包装后的abc支持直接传入列表
abc = unpack_decorator(abc)
z = [6, 5]
f = lambda x: x
print(abc(f(z))) # 输出 11

内容的提问来源于stack exchange,提问作者Akira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 07:36:11