pin_drop当前位置:知识文库 ❯ 图文

Python列表extend()方法

概述

extend() 方法用于将一个可迭代对象中的所有元素逐个添加到列表末尾。与 append() 将整个对象作为单个元素添加不同,extend() 会"展开"可迭代对象,将其中的元素逐一追加。这是合并两个列表最常用的方法之一。


语法

代码示例

list.extend(iterable)
参数 说明
iterable 可迭代对象(列表、元组、集合、字符串等)

返回值None(原地修改列表)


基本用法

合并两个列表

代码示例

list1 = [1, 2, 3]
list2 = [4, 5, 6]
list1.extend(list2)
print(list1)

输出:

代码示例

[1, 2, 3, 4, 5, 6]

合并元组

代码示例

colors = ["red", "green"]
more = ("blue", "yellow")
colors.extend(more)
print(colors)

输出:

代码示例

['red', 'green', 'blue', 'yellow']

合并集合

代码示例

nums = [1, 2]
nums.extend({3, 4})
print(nums)

输出:

代码示例

[1, 2, 3, 4]

添加字符串

代码示例

chars = ["a", "b"]
chars.extend("cd")
print(chars)

输出:

代码示例

['a', 'b', 'c', 'd']

注意:字符串是可迭代对象,extend() 会逐个字符添加,而不是添加整个字符串。


extend 与 append、+= 对比

特性 extend() append() +=
添加方式 逐个添加元素 整体添加 逐个添加元素
参数要求 可迭代对象 任意类型 可迭代对象
返回值 None None 无(原地修改)
创建新列表

代码示例

a = [1, 2, 3]
b = [1, 2, 3]
c = [1, 2, 3]

a.extend([4, 5])
b.append([4, 5])
c += [4, 5]

print("extend:", a)
print("append:", b)
print("+=:", c)

输出:

代码示例

extend: [1, 2, 3, 4, 5]
append: [1, 2, 3, [4, 5]]
+=: [1, 2, 3, 4, 5]

提示extend()+= 效果相同,但 += 更简洁。注意 += 只能用于相同类型(列表+列表),而 extend() 可以接受任何可迭代对象。


常见应用场景

合并多个列表

代码示例

results = []
list1 = [1, 2]
list2 = [3, 4]
list3 = [5, 6]

for lst in [list1, list2, list3]:
    results.extend(lst)

print(results)

输出:

代码示例

[1, 2, 3, 4, 5, 6]

展开嵌套列表

代码示例

nested = [[1, 2], [3, 4], [5, 6]]
flat = []
for sub in nested:
    flat.extend(sub)
print(flat)

输出:

代码示例

[1, 2, 3, 4, 5, 6]

注意事项

参数必须是可迭代对象extend() 的参数必须是可迭代对象,否则会抛出 TypeError

代码示例

a = [1, 2]
a.extend(3)

输出:

代码示例

TypeError: 'int' object is not iterable

原地修改extend() 不会返回新列表,不要写成 list = list.extend(x)


小结

  • extend() 将可迭代对象中的元素逐个添加到列表末尾

  • append() 的核心区别:extend 展开添加,append 整体添加

  • extend()+= 效果类似,但 extend() 更灵活

  • 参数必须是可迭代对象


练习题

练习1

编写一个函数 flatten(nested_list),接收一个嵌套列表(每个子列表包含数字),使用 extend() 将其展开为一维列表并返回。

练习2

给定列表 data = [1, 2, 3],分别使用 extend() 添加字符串 "abc" 和使用 append() 添加字符串 "abc",比较结果的不同。

常见问题

extend() 和 append() 有什么本质区别?

extend() 会将可迭代对象展开,逐个添加其中的元素;而 append() 将整个参数作为单个元素添加。例如 extend([1,2]) 会添加两个元素,append([1,2]) 只添加一个嵌套列表。

extend() 能接受什么类型的参数?

extend() 的参数必须是可迭代对象,包括列表、元组、集合、字符串、字典(迭代的是键)等。如果传入不可迭代的对象(如整数),会抛出 TypeError。

extend() 和 += 运算符哪个更好?

两者都是原地修改列表,效果相同。+= 更简洁但只能用于列表类型;extend() 更灵活,可以接受任何可迭代对象(如元组、集合、字符串等)。

使用 extend() 添加字符串会发生什么?

字符串是可迭代对象,extend() 会逐个字符添加到列表中。例如 list.extend("abc") 会添加 'a'、'b'、'c' 三个元素,而不是添加整个字符串 "abc"。

标签: Python extend 列表合并 列表方法 可迭代对象 Python教程

本文涉及AI创作

内容由AI创作,请仔细甄别

list快速访问

上一篇: Python列表append()方法 下一篇: Python列表insert()方法

poll相关推荐

作者头像 智能小晨 python

Python元组命名namedtuple

发布日期 2026-05-31
深入学习Python命名元组namedtuple,掌握字段访问、_make创建、_asdict转字典、_replace替换字段等核心方法。理解命名元组与普通元组的区别,写出更清晰易读的Python代码。
作者头像 智能小晨 python

Python元组解包

发布日期 2026-05-31
全面学习Python元组解包技巧,包括基本解包、星号扩展解包、嵌套解包、交换变量和函数多值返回。掌握优雅的Python赋值语法,让你的代码更简洁高效。
作者头像 智能小晨 python

Python元组index方法

发布日期 2026-05-31
深入学习Python元组index()方法,掌握元素索引查找技巧。了解index()语法、指定范围查找、安全查找方法和实际应用场景,避免ValueError异常,提升Python编程效率。
作者头像 智能小晨 python

Python元组count方法

发布日期 2026-05-31
深入学习Python元组count()方法,掌握元素出现次数统计技巧。了解count()语法、性能优化建议、嵌套元组统计和实际应用场景,配合练习题巩固所学知识。