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

为何Python列表的pop()方法会移除两个元素?

Python列表pop()方法的执行差异解析

核心问题:为什么第一段代码中pop()看起来从列表里移除了两个元素,而第二段只移除了一个?

第一段代码及执行分析

代码:

guest = ['aaron', 'john', 'pedro', 'kevin', 'mark', 'brad']
print(guest)
guest.pop()
print(f"{guest.pop()}") 
print(guest)

输出:

['aaron', 'john', 'pedro', 'kevin', 'mark', 'brad']
mark
['aaron', 'john', 'pedro', 'kevin']

执行步骤:

  • 初始列表有6个元素,第一次print(guest)输出完整列表。
  • 第一次调用guest.pop():直接移除列表最后一个元素brad,此时列表变为['aaron', 'john', 'pedro', 'kevin', 'mark']。
  • 执行print(f"{guest.pop()}")时,又一次调用了guest.pop():移除当前列表的最后一个元素mark,并将这个元素的值作为打印内容输出,此时列表变为['aaron', 'john', 'pedro', 'kevin']。
  • 最后一次print(guest)输出剩余的4个元素。

这段代码总共调用了两次pop()方法,所以列表会减少两个元素。

第二段代码及执行分析

代码:

guest = ['aaron', 'john', 'pedro', 'kevin', 'mark', 'brad']
print(guest)
guest_1 = guest.pop()
print(f"{guest_1}")
print(guest)

输出:

['aaron', 'john', 'pedro', 'kevin', 'mark', 'brad']
brad
['aaron', 'john', 'pedro', 'kevin', 'mark']

执行步骤:

  • 初始列表同样是6个元素,第一次print(guest)输出完整列表。
  • 调用guest.pop()一次:移除最后一个元素brad,并将返回值赋值给变量guest_1,此时列表变为['aaron', 'john', 'pedro', 'kevin', 'mark']。
  • print(f"{guest_1}")只是打印变量guest_1存储的值,没有再次调用pop()方法。
  • 最后print(guest)输出剩余的5个元素。

这段代码只调用了一次pop()方法,所以列表仅减少一个元素。

关键差异总结

每次调用list.pop()方法,都会直接对列表执行一次“移除最后一个元素”的操作:

  • 第一段代码中存在两次guest.pop()调用,因此触发两次移除。
  • 第二段代码仅调用一次guest.pop(),后续只是打印已存储的返回值,没有新的移除操作。

内容的提问来源于stack exchange,提问作者Bern

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 04:10:21