Python中如何实现任意维度列表的元素逐元素乘一个数?
多维列表元素批量乘指定数字的实现方案
递归列表推导式方案
这是适配任意嵌套维度的简洁实现方式,通过递归判断元素类型逐层处理:
def multiply_nested(lst, factor): return [multiply_nested(item, factor) if isinstance(item, list) else item * factor for item in lst]
示例用法
- 二维列表测试:
lst_2d = [[1,2],[1,1],[4,5]] result = multiply_nested(lst_2d, 2) print(result) # 输出: [[2, 4], [2, 2], [8, 10]]
- 三维列表测试:
lst_3d = [[[1,2],[1,1],[4,5]],[[1,2],[1,1],[4,5]]] result = multiply_nested(lst_3d, 2) print(result) # 输出: [[[2, 4], [2, 2], [8, 10]], [[2, 4], [2, 2], [8, 10]]]
原理说明
- 遍历列表每个元素,若元素是子列表则递归调用函数处理;
- 若元素是数字(整数/浮点数),直接与指定因子相乘;
- 无需提前确定列表维度,天然支持任意嵌套深度的结构。
内容的提问来源于stack exchange,提问作者Wan299792458
相关产品推荐
相关产品推荐

