Python中两个二维列表对应元素逐位相除的高效实现方法
实现方案
可以根据你的使用场景选择以下两种更简洁高效的实现方式:
方案1:纯Python列表推导式(无需第三方依赖)
直接用嵌套列表推导式替代显式嵌套for循环,写法简洁可读性高,适合小规模列表运算:
A = [[10,20,30], [5,8,10]] B = [[1,2,5], [5,4,2]] # 逐位做整数除法,匹配你给出的结果需求 result = [[a // b for a, b in zip(row_a, row_b)] for row_a, row_b in zip(A, B)]
运行后得到的result和你预期的输出完全一致。
方案2:NumPy向量化运算(适合大规模数值计算)
如果是处理体量较大的二维数值矩阵,用NumPy的向量化运算效率远高于原生Python循环,代码也更简洁:
import numpy as np A = [[10,20,30], [5,8,10]] B = [[1,2,5], [5,4,2]] # 转为NumPy数组后直接做逐位运算 result = (np.array(A) // np.array(B)).tolist()
如果后续不需要转回原生列表,直接用NumPy数组对象操作即可,省略最后的tolist()调用。
内容的提问来源于stack exchange,提问作者aaklbfklfkfkl
相关产品推荐
相关产品推荐

