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