Python列表乘法小记

说明一下Python中列表乘法生成列表与直接写出列表的不同。
首先说一下需要列表乘法生成列表的情况:
比如,我们初始化一个0列表,我们可以[0]10,生成一个长度为10的全0列表,这样做没问题
再比如,我们嵌套列表初始化一个矩阵,类似[[],[],[]],我们可以用[[]]
3,但是这里就有问题了。[0]10与[[]]3不同之处在于0是不可变对象,[]是可变对象,列表乘法所生成的大列表中小列表之间的关系是引用

用代码来说明一下:test_list = [[]]*3 print id(test_list[0]) print id(test_list[1]) print id(test_list)
结果:
394401363944013640163400
这意味着,test_list里面每个元素都是id39440136这个列表元素的索引,这样我们就没法实现多个列表分开存储的需求
如果是列表加法和直接写列表的话,列表中每个元素都是独立的对象。

较好的方式产生预想的效果的话可以使用
[ [] for i in range(3) ]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,643评论 18 399
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,921评论 0 17
  • 赵茂宇(雪儿少年) 银狼口中我乘月色将你救下 自此,轻衣掩像长剑 我带你叶落天涯 愿 想底在古代一样 茫白雪色载北...
    雪儿少年阅读 1,648评论 0 1
  • 1.首先要在页头加入 2.宽度尽量使用%,高度使用auto或者% 整体页面的,比如导航,宽屏图片,不要设置px,而...
    ZZES_ZCDC阅读 2,732评论 0 0
  • 读《学会提问——批判性思维指南》所思 互联网时代,信息呈爆炸式增长,我们就在这些信息中不停地穿梭。信息在丰富我们头...
    stone_thinker阅读 6,634评论 0 1

友情链接更多精彩内容