python - 为什么两个数组共享值?
问题描述
我有一个数组array1 = [[0, 1, 2, 3], [4, 5, 6, 7]]
,我想切换array1[0]
and array1[1]
,理想情况下看起来像这样:array1 = [[4, 5, 6, 7], [0, 1, 2, 3]]
. 到目前为止,我已经尝试过:
array1 = [[0, 1, 2, 3], [4, 5, 6, 7]]
array2 = array1
array1[0] = array2[1]
array1[1] = array2[0]
但这又回来了[[4, 5, 6, 7], [4, 5, 6, 7]]
。有谁知道为什么会这样?
解决方案
当你说:
array2 = array1
您正在使它array2
引用内存中的相同对象array1
。这称为“绑定”分配。之后的表达式:
array1[0] = array2[1]
无异于说:
array1[0] = array1[1]
array1 和array2 之间不再有任何区别。
推荐阅读
- android - 是否有一种解决方法来模拟在 Android 的仪器测试期间打开的第二个活动的注入视图模型?
- nginx - 如何在 nginx 服务器中记录所有标头
- python - 如何将一行拆分为多个并在数据框列上应用日期时间?
- c++ - SFML - 将 RenderTexture 保存到图像 0xC0000005 时访问冲突读取位置
- python - 当 pygame 精灵跑到它的尾巴上时如何检测并结束游戏(使用 screen.get_at)?
- powershell - 我需要在我的powershell脚本中添加对参数的依赖条件什么是最好的方法?
- spring - Spring Boot 测试最小测试片或手动配置
- python - Optimizing execution-time to check if chars of a word are in a list python
- reactjs - 部分 redux 状态重新渲染(不必要的)整个反应组件
- python - 带有元组并从列表中删除元组的 If 语句