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

Python中如何将列表子元素作为函数可变参数传递

问题解决:将列表子元素作为可变参数传入Python函数

首先看给定的函数定义:

from itertools import product as get_cartesian_product 
from arithmetic import get_iterable_sum


def get_number_of_solutions(*possible_variables, target):
    number_of_solutions = 0
    for comb in get_cartesian_product(possible_variables):
        if get_iterable_sum(comb) == target:
            number_of_solutions += 1
    return number_of_solutions

以及定义的列表:

variables_possiblities = [[1, 3, 5, 7, 9], [1, 3, 5, 7, 9], [0, 2, 4, 6, 8, 10]]

需求是把variables_possiblities中的每个子列表作为*possible_variables的参数传入,而非把整个列表作为单个参数传递。

实现方法

直接使用Python的**解包运算符***来展开列表,将其内部的每个子列表作为独立的位置参数传入函数:

# 示例指定target值为10,可根据需求修改
target_value = 10
result = get_number_of_solutions(*variables_possiblities, target=target_value)
print(result)

原理说明

函数定义中的*possible_variables是可变位置参数,它会把传入的多个位置参数打包成一个元组。反过来,在调用函数时用*前缀加列表,就能把列表的元素逐个拆解,作为独立的位置参数传递给函数,正好匹配*possible_variables的参数要求。这样get_cartesian_product(possible_variables)就能正确接收三个子列表,计算它们的笛卡尔积。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 19:55:18