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

Python中pop()与pop(-1)的区别:时间复杂度是否一致?

列表pop()与pop(-1)的时间复杂度解析
  • 核心结论:list.pop()(无参默认弹出尾元素)和list.pop(-1)的时间复杂度完全一致,均为O(1)。
  • pop(-1)不需要遍历整个列表。

底层逻辑说明

Python的列表基于动态数组实现,数组在内存中是连续存储的结构:

  • 尾元素的内存地址可以通过数组起始地址+长度偏移直接定位,无需遍历。
  • pop()的默认参数就是-1,二者在源码层面执行完全相同的逻辑:直接定位尾元素,移除后调整数组长度标记,全程无遍历操作,因此是常数级时间复杂度。

与之对比,若调用pop(i)且i不是尾索引(比如pop(0)),则需要将i之后的所有元素向前移动一位填补空缺,此时时间复杂度为O(n),但pop(-1)和默认pop()不存在这类操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 00:10:52