Python中为什么会有.copy()?直接赋值不好吗?

Python中为什么会有.copy()?直接赋值不好吗?

笔者最近调程序一直结果不符合预期,最后排查到原因发现自己真是数据结构没学好,真是应了那句“你数据结构怎么学的”。两个例子就看懂了。【例1】


a = [1,2,3,4]print(a)b = ab.pop(0)print(a)print(b)

【例2】


a = [1,2,3,4]print(a)b = a.copy()b.pop(0)print(a)print(b)

总结:在 Python 中,对于列表这类可变对象 ,直接赋值(如 b = a),赋值的是**“地址”(引用)** ,而非复制列表的内容。