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

Sympy中如何使用列表推导式遍历多层嵌套列表?

Sympy场景下多层嵌套列表的遍历替换实现

不需要编写多行重复代码,根据嵌套列表的层数是否固定,可选择以下两种实现方案:

方案1:嵌套层数固定为2层(极简写法)

直接用双层列表推导遍历即可,不需要按索引逐个编写重复的推导逻辑:

from sympy import *
var('ax bx')
ans_ab = [[ax], [bx]]
myValue = {ax:5, bx:7}
# 直接双层遍历,和逐行写索引的运行结果完全一致
res = [[ans.subs(myValue) for ans in sub_list] for sub_list in ans_ab]
print(res)
# 输出:[[5], [7]]

方案2:适配任意层数的嵌套列表(通用递归实现)

如果嵌套层数不固定,用递归逻辑实现通用的嵌套替换函数,不管多少层嵌套都能自动遍历处理:

from sympy import *

def nested_subs(nested_list, subs_dict):
    return [
        nested_subs(item, subs_dict) if isinstance(item, list)
        else item.subs(subs_dict)
        for item in nested_list
    ]

使用示例:

# 测试3层嵌套
var('ax bx cx dx ex')
ans_multi_layer = [[ax, [cx, dx]], [bx, [ex]]]
myValue = {ax:1, bx:2, cx:3, dx:4, ex:5}
res = nested_subs(ans_multi_layer, myValue)
print(res)
# 输出:[[1, [3, 4]], [2, [5]]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:15:01