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

使用for循环无法更新矩阵元素,对float值四舍五入保留3位小数后矩阵未变化

原因分析
  • Python中的float属于不可变数据类型,嵌套循环中拿到的number只是原矩阵对应元素的值拷贝,对number直接赋值只会修改临时变量的指向,不会写入原矩阵的对应存储位置,因此原矩阵不会发生变化。
修复代码

通过下标索引定位到原矩阵的元素位置,直接赋值覆盖原值即可:

M = [[1.0, 0.6666666666666666, 0.0, 0.5098039215686274], [-0.0, -0.0, 1.0, 0.4117647058823529]]
for arr_idx in range(len(M)):
    for num_idx in range(len(M[arr_idx])):
        M[arr_idx][num_idx] = round(M[arr_idx][num_idx], 3)
print(M)

运行输出结果:
[[1.0, 0.667, 0.0, 0.51], [-0.0, -0.0, 1.0, 0.412]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:54:07