赞
踩
问题引出:
创造嵌套列表dlist,可视为四行三列的矩阵,其中每个元素都为0。
将1赋值给索引为[0][0]的元素,预期效果为[[1,0,0],[0,0,0],[0,0,0],[0,0,0]],实际效果如下图所示
解析:
创建嵌套列表dlist时,
list2中的每个小列表都指向list1列表的内存,当对list2的任意子列表进行修改,会修改指向list1列表中的变量,从而所有指向list1的变量都会随之改变!
解决方法:
列表推导
参考资料:
Python中列表赋值中的坑
python 踩坑系列之嵌套列表创建
python3 踩坑之:*操作符生成二维列表
存疑:
用 * 创建单层列表时,其子元素内存地址相同,但不会出现嵌套列表内的赋值问题。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。