什么是 extend()?
在 Python 中,list.extend(iterable) 是列表(list)对象的一个内置方法,
用于将一个可迭代对象(如列表、元组、字符串等)中的所有元素逐个添加到原列表的末尾。
与 append() 不同,extend() 不会将整个对象作为一个元素插入,而是“展开”后追加每个元素。
基本用法示例
# 示例 1:使用 extend() 合并两个列表
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list1.extend(list2)
print(list1) # 输出: [1, 2, 3, 4, 5, 6]
# 示例 2:extend() 接受任意可迭代对象
letters = ['a', 'b']
letters.extend('cd') # 字符串是可迭代的
print(letters) # 输出: ['a', 'b', 'c', 'd']
# 示例 3:与 append() 对比
nums = [1, 2]
nums.append([3, 4]) # 添加整个列表作为单个元素
print(nums) # [1, 2, [3, 4]]
nums2 = [1, 2]
nums2.extend([3, 4]) # 展开后逐个添加
print(nums2) # [1, 2, 3, 4]
extend() 与 append() 的区别
| 方法 | 行为 | 结果示例 |
|---|---|---|
list.append(x) |
将 x 作为一个整体添加到列表末尾 |
[1, 2].append([3]) → [1, 2, [3]] |
list.extend(iterable) |
将 iterable 中的每个元素逐一添加 |
[1, 2].extend([3]) → [1, 2, 3] |
常见应用场景
- 合并多个列表数据
- 动态构建大型列表(比多次
+操作更高效) - 从文件或 API 读取数据后批量追加到现有列表
- 处理字符串时逐字符扩展(因字符串是可迭代对象)
性能提示
extend() 的时间复杂度为 O(k),其中 k 是被添加元素的数量。
相比于使用 list = list + other_list(会创建新列表,O(n + k)),
extend() 直接在原列表上操作,内存效率更高。
注意事项
extend()无返回值(返回None),它直接修改原列表。- 传入的参数必须是可迭代对象,否则会抛出
TypeError。 - 若需保留原列表不变,请先复制再操作,例如:
new_list = old_list.copy(); new_list.extend(...)。