m0_56071626 2021-07-27 21:48 采纳率: 95.8%
浏览 32
已结题

python程序中遇到了一个无法理解的问题

  1. 这是一个用迭代法算行列式的程序,遇到了这样的问题:

img
在经过24行之前determinant的值是123456789
经过24行之后,
img
determinant的值变为1235689,真的不知道为何determinant的值为何会改变,明明24行没有对determinant做过任何改变。
img

这是24行涉及的函数,这个函数只改变了determinant.copy即new-deter的值

  • 写回答

1条回答 默认 最新

  • 关注

    determinant.copy()是浅拷贝,只复制了列表的第一层,列表第二层的[1,2,3]没有复制,只传递了其引用。

    你在函数的for循环中用del删除列表第二层的数据。determinant中也会改变。
    你改用copy.deepcopy(determinant)深拷贝就好了
    import copy

    new_deter = copy.deepcopy(determinant)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月4日
  • 已采纳回答 7月27日
  • 创建了问题 7月27日

悬赏问题

  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形