Python中使用if-else循环处理嵌套列表 按规则求均值生成新列表
通用循环实现方案
核心逻辑
遍历原三层嵌套列表A的所有一级子项,通过判断每个一级子项下的二级元素数量走对应分支:
- 若二级元素数量为2:提取两个三级位置的数值,计算平均值作为新列表对应位置的值
- 若二级元素数量为1:直接提取唯一的三级位置数值,作为新列表对应位置的值
最终输出保持和示例一致的三层嵌套结构,支持任意长度的同结构输入。
可直接运行的通用代码
# 此处A可替换为任意长度的同结构三层嵌套列表 A = [ [[0.369577823]], [[0.987884443]], [[1.244425627], [1.058887146]], [[3.707809378]], [[0.476881021]], [[0.304499065], [1.037728999]], [[3.073758392], [5.032947535]] ] Anew = [[]] for item in A: if len(item) == 2: # 双值分支:计算平均值 cal_res = (item[0][0] + item[1][0]) / 2 Anew[0].append([cal_res]) else: # 单值分支:直接取值 cal_res = item[0][0] Anew[0].append([cal_res])
输出验证
运行代码后得到的Anew和期望结果完全一致:
[[[0.369577823], [0.987884443], [1.1516563865], [3.707809378], [0.476881021], [0.671114032], [4.0533529635]]]
适配说明
- 不绑定原列表固定长度,一级子项增减无需修改代码逻辑
- 通过长度判断替代固定索引取值,不会触发索引不存在的报错
- 输出嵌套层级和硬编码示例完全对齐,可直接替换原有硬编码逻辑
内容的提问来源于stack exchange,提问作者Wiz123
相关产品推荐
相关产品推荐

