pin_drop当前位置:知识文库 ❯ 图文
Python列表extend()方法
概述
extend() 方法用于将一个可迭代对象中的所有元素逐个添加到列表末尾。与 append() 将整个对象作为单个元素添加不同,extend() 会"展开"可迭代对象,将其中的元素逐一追加。这是合并两个列表最常用的方法之一。
语法
代码示例
list.extend(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、+= 对比
代码示例
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"。
本文涉及AI创作
内容由AI创作,请仔细甄别