Python面试题更新 2026-08-05

在 Python 中,列表方法 append、insert 与 extend 各自的作用有何不同?

技术原理Python

考察说明

考查对 Python 列表常用方法语义差异的理解。

回答思路

  1. 【回答框架 1】append 方法用于在列表末尾添加一个元素,该元素作为整体被加入,即如果传入一个列表,此列表会成为原列表的一个嵌套元素。其时间复杂度为 O(1),原地修改列表,无返回值。
  2. 【回答框架 2】insert 方法用于在指定索引位置插入一个元素,同样整个元素作为单个项插入,后续元素后移。该操作涉及元素移动,平均时间复杂度为 O(n),索引越界时会在列表头或尾插入。
  3. 【回答框架 3】extend 方法用于将一个可迭代对象中的每个元素依次追加到列表末尾,列表长度增加可迭代对象中元素的数量。若传入字符串,会逐字符追加;若传入列表,则合并两个列表,时间复杂度与可迭代对象长度相关。
  4. 【回答框架 4】三者共同点是均原地修改列表,不返回新列表;区别在于 append 和 insert 添加单个元素,extend 添加多个元素;append 固定尾部,insert 可指定位置,extend 固定尾部且批量添加。
  5. 【回答框架 5】实际使用中,追加单元素用 append,指定位置插入用 insert,合并多个元素或用可迭代对象扩展列表用 extend。
  6. 【关键点 1】append 整体添加一个元素,extend 逐个添加可迭代对象元素。
  7. 【关键点 2】insert 按索引插入,涉及元素移动,O(n)。
  8. 【关键点 3】三种方法均原地修改,无返回值。
  9. 【易错点 1】误将 append 的列表参数当作合并,实际生成嵌套列表。
  10. 【易错点 2】insert 负索引语义与下标一致,-1 插入在倒数第二位置,而非末尾。
  11. 【易错点 3】extend 与列表相加不同,list.extend 就地修改,list + list 返回新列表。