You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python编写接收不定参数生成指定占位列表的lambda函数?

实现代码

def generate_list(s: int, idx: list, fixed_vals: list, *args):
    # 入参长度校验
    if len(idx) != len(fixed_vals):
        raise ValueError("索引列表长度与固定值列表长度不匹配")
    required_arg_count = s - len(idx)
    if len(args) != required_arg_count:
        raise ValueError(f"需传入{required_arg_count}个可变参数,实际传入{len(args)}个")
    
    result = [None] * s
    # 填充固定值到对应索引位置
    for pos, val in zip(idx, fixed_vals):
        result[pos] = val
    # 按顺序填充可变参数到剩余空位置
    arg_idx = 0
    for i in range(s):
        if result[i] is None:
            result[i] = args[arg_idx]
            arg_idx += 1
    return result

调用示例

对应你给出的需求场景,调用方式如下:

# 自定义变量
t0 = 10
t1 = 20
t4 = 30

# 调用函数生成目标列表
output = generate_list(s=5, idx=[2,3], fixed_vals=[0.3, 0.7], t0, t1, t4)
print(output)  # 输出结果:[10, 20, 0.3, 0.7, 30]

说明

  • *args就是用来接收不定数量的可变参数的语法,你不需要提前定义参数数量,只要保证传入的可变参数个数等于s - len(idx)即可
  • 剩余空位置会按索引从小到大的顺序,依次匹配你传入的可变参数,你给出的示例中空位置索引是0、1、4,按顺序传入t0、t1、t4即可正确匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 23:24:04