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

如何调用带参数的函数列表?含列表推导式实现方法咨询

调用带参数的函数组及列表推导式用法

一、调用一组带参数的函数

1. 每个函数对应不同参数

如果你的函数列表和参数列表是一一对应的,用zip()配合循环就能逐个调用:

# 示例函数
def add(a, b):
    return a + b

def multiply(a, b):
    return a * b

def subtract(a, b):
    return a - b

# 函数列表与对应参数列表
funcs = [add, multiply, subtract]
params = [(2, 3), (4, 5), (10, 4)]

# 循环调用并收集结果
results = []
for func, args in zip(funcs, params):
    results.append(func(*args))  # *用于解包参数元组

print(results)  # 输出: [5, 20, 6]

2. 所有函数使用相同参数

要是所有函数都用同一组参数,直接遍历函数列表调用即可:

common_args = (3, 6)
results = []
for func in funcs:
    results.append(func(*common_args))

print(results)  # 输出: [9, 18, -3]

二、用列表推导式调用带参数的函数列表

列表推导式能把上面的循环简化成一行代码,更简洁高效。

1. 对应不同参数的情况

结合zip()把函数和参数配对,直接推导:

results = [func(*args) for func, args in zip(funcs, params)]
print(results)  # 输出: [5, 20, 6]

2. 相同参数的情况

直接遍历函数列表并传入统一参数:

results = [func(*common_args) for func in funcs]
print(results)  # 输出: [9, 18, -3]

处理关键字参数

如果函数需要关键字参数,用**解包字典即可:

def greet(name, greeting="Hello"):
    return f"{greeting}, {name}!"

def introduce(name, age):
    return f"I'm {name}, {age} years old."

funcs = [greet, introduce]
kwargs_list = [{"name": "Alice"}, {"name": "Bob", "age": 25}]

results = [func(**kwargs) for func, kwargs in zip(funcs, kwargs_list)]
print(results)  # 输出: ["Hello, Alice!", "I'm Bob, 25 years old."]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 22:52:39