欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

(python)列表append之后,列表中其它元素也跟着改变

程序员文章站 2022-05-29 18:52:41
...

(python)列表append之后,列表中其它元素也跟着改变

while len(mobile) != 0:
        mobile.sort()
        k = mobile[-1] 
        reverse(t, k)
        reverseall(t, k)
        mobile = findMobile(t)
        r.append(t)

代码比较粗略,主要流程是 每次循环的过程中,修改t的元素,将t利用append方法加入到列表t中.最后输出的时候,列表输出n次相同元素

产生原因:
append(t)的时候传递的是t的地址,而且列表list是可变的,list当中的所有元素其实是指向同一内存的相同元素. 当t的数据发生变化时,其余数据也发生变化

解决方案:
可以这么写 li.append([x for x in t])
反思:
对于引用理解不透彻

相关标签: 小白踩坑 python