You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何这段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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 03:35:45