为何这段Python代码输出[2,3,4,5]而非完整列表?
问题解析:为什么修改a后b也跟着变了?
先看你的代码:
a = [1,2,3,4,5] b = a a.remove(a[0]) print(b)
核心原因是Python里的列表属于可变对象,b = a这个操作并没有复制出一个新列表,只是让变量b和a指向内存里的同一个列表对象。
打个比方:a和b就像两个一模一样的遥控器,操控的是同一台电视。你用a遥控器切换了频道,用b遥控器打开时,看到的肯定也是切换后的频道。
所以当你调用a.remove(a[0])修改的是那个被共享的列表,b指向的还是这个列表,输出自然是[2,3,4,5]而非原列表。
如果想让a和b成为互相独立的两个列表,需要显式复制:
- 切片方式:
b = a[:] - 构造函数方式:
b = list(a) - 列表自带的copy方法:
b = a.copy()
内容的提问来源于stack exchange,提问作者Ferrrerero
相关产品推荐
相关产品推荐

