这里遇到的一个小坑-python中的二维列表
来源:互联网 发布:软件自主开发销售收入 编辑:程序博客网 时间:2024/05/16 16:05
缘起于某个同学问了我一个问题(我自己学的话万万不会抠得那么深...)
他的程序是这样的:
listx=[]graph=[]for a in range(0,10): listx.append(99999)for b in range(0,10): graph.append(listx)graph[0][0]=0print graph
他原意是想就给这个二维列表的第一行第一列赋值0 即graph[0][0]=0,然而却出现了以上的结果...
经过一系列的 "怎么会!不可能啊!奇怪...!!!" 后,这个结果的原因是:
他给graph添加的是个元素始终都是listx这个列表,因此,graph所有元素的值都是listx的一个浅复制。他们都指向同一个地址,即listx的内存地址,因此只要改变graph当中一个元素的值,就会影响到其他元素。所以如上例,当将graph第一行第一列的值由9999变为0后,其他行也发生了改变。
下面是修改后的代码:
graph = [[] for i in range(10)]for a in range(0,10): for b in range(0,10): graph[a].append(9999)graph[0][0]=0 print graph
0 0
- 这里遇到的一个小坑-python中的二维列表
- python中的列表(List)的小坑
- python中的二维列表(实例)
- 初学python遇到的一个小问题
- Ruby中的二维数组初始化的一个小问题
- Ruby中的二维数组初始化的一个小问题
- python中二维列表的创建
- python中二维列表的创建
- 关于Python的基础知识8--二维列表
- python二维列表一维列表的互相转换
- 安装MySQL-python遇到的一个坑
- 遇到的一个小问题
- python 把一个m*n的二维矩阵转换成一个m*n行,三列的列表
- python初始化二维数组的小问题
- Python二维字典的几个小例子
- 这里写一个小文章
- Python的print命令使用中的一个小错误
- python中的列表的复制
- Spring接口和类代理实例
- Android Studio集成极光推送
- 第16周OJ实践3 结构体--学生信息排序
- 2017年区块链技术与应用新年分享活动预告
- CentOS6安装MySQL HA架构部署(MySQL + Heartbeat + DRBD)
- 这里遇到的一个小坑-python中的二维列表
- android 应用间共享 sharedpreference
- activiti学习教程
- HTML5--表单属性
- if 多分支语句区别
- nova各个服务的作用
- 树状数组求逆序对
- android抛物线动画实现
- Tornado 怎么用命令生成vxWorks.bin