Python语言本身的Bug

今天早上起来写代码,发现定义的函数行为与预期的不一致,经过定位发现并非我的函数实现由问题,而是Python语言本身有个Bug,再此提炼记录以便后来者!
产生两个数组:
list_1 = [[]] * 4
print(list_1): [[], [], [], []]

list_2 = [[],[],[],[]]
print(list_2):: [[], [], [], []]

print(list_1 == list_2): True
从此证明 两种产生list的方式效果相同

最重要的来了,But:
list_1[0].append(1)
print(list_1):[[1], [1], [1], [1]]

list_2[0].append(1)
print(list_2):[[1], [], [], []]

也就是说采用第一种方式产生的List,操作其中任何一个元素,都会把其他元素同步修改,而第二种方式则不会。
我瞬间凌乱了,此问题在python2,python3都存在,目前还没找出python的bug原因,计划后面看看python源码再续写

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

相关阅读更多精彩内容

  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 7,897评论 1 118
  • Python 面向对象Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对...
    顺毛阅读 4,414评论 4 16

友情链接更多精彩内容