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

如何将Python含NumPy数组的嵌套列表中整数元素除以100?

我来帮你搞定这个嵌套列表的数值缩放问题!针对你这种既有多层嵌套列表又混着NumPy数组的场景,咱们可以用递归遍历的方式,精准处理每一层的元素,把所有list[x][y][z]位置的整数(包括NumPy数组里的元素)都除以100。

具体实现方案

核心思路

写一个递归函数遍历整个嵌套结构,根据元素类型做针对性处理:

  • 遇到列表就继续深入递归处理每个子元素
  • 遇到NumPy数组直接用向量化运算除以100(这可是NumPy的强项,不用手动循环每个元素)
  • 遇到整数就直接除以100,得到浮点数结果(如果需要整数商可以改用整数除法)

完整代码示例

import numpy as np

def process_nested_structure(item):
    if isinstance(item, list):
        # 递归处理列表中的每个子元素,生成新列表
        return [process_nested_structure(subitem) for subitem in item]
    elif isinstance(item, np.ndarray):
        # NumPy数组直接执行向量化除法,效率拉满
        return item / 100
    elif isinstance(item, int):
        # 整数转为除以100后的浮点数
        return item / 100
    else:
        # 其他类型(比如浮点数、字符串)直接返回原元素
        return item

# 用你的示例结构测试
listExample = [
    [
        [[100, 200, 300], [230, 133, 234]],
        [[234, 232, 523], [231, 234, 554]]
    ],
    [
        [[701, 704, 204], [331, 833, 634]]
        # 可以继续扩展更多嵌套元素
    ]
]

# 特意加个NumPy数组测试混合场景
listExample[0][1] = np.array([[400, 500], [600, 700]])

# 执行处理
processed_result = process_nested_structure(listExample)
print(processed_result)

代码细节说明

  • 递归函数会自动识别每一层的元素类型,不用手动写多层循环,适配任意深度的嵌套结构
  • 处理NumPy数组时,利用其向量化特性,比手动循环数组元素高效得多
  • 如果需要保留整数结果(比如只取除法的商),可以把item / 100改成item // 100
  • 函数默认生成新的结构,不会修改原列表,避免误操作破坏原始数据;如果需要原地修改,只需要把递归里的返回逻辑改成直接修改原列表元素即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:24:21