执行 lst.append(40) 后,列表 lst 从 [10, 20, 30] 变为 [10, 20, 30, 40],长度由 3 增加到 4。
因此,正确答案是:B. 4
append() 和 extend() 都是列表的原地修改方法,但核心区别在于添加方式不同:
-
append(object):将整个对象作为单个元素添加到列表末尾。
例如:lst = [1, 2, 3] lst.append([4, 5]) # 结果:[1, 2, 3, [4, 5]] → 长度变为 4,嵌套了一个列表 -
extend(iterable):将可迭代对象(如列表、元组、字符串等)中的每个元素逐一添加到列表末尾。
例如:lst = [1, 2, 3] lst.extend([4, 5]) # 结果:[1, 2, 3, 4, 5] → 长度变为 5,无嵌套
⚠️ 注意:
extend()要求参数必须是可迭代对象,传入非迭代对象(如整数lst.extend(4))会报TypeError;append()可接受任意类型对象(包括可迭代对象),不会解包。
lst.append("abc") 和 lst.extend("abc") 的结果有本质区别,源于字符串 "abc" 在两种方法中被对待方式不同:
-
lst.append("abc"):将整个字符串"abc"作为一个元素添加到列表末尾。
示例:lst = [1, 2] lst.append("abc") # 结果:[1, 2, "abc"] → 长度 +1,新增一个字符串元素 -
lst.extend("abc"):将字符串"abc"视为可迭代对象(字符序列),逐个字符添加(即'a','b','c')。
示例:lst = [1, 2] lst.extend("abc") # 结果:[1, 2, 'a', 'b', 'c'] → 长度 +3,新增三个字符元素
✅ 关键点:
- 字符串是可迭代对象(
iter("abc")产生'a','b','c'); append()不解包,extend()自动解包并迭代。

236

被折叠的 条评论
为什么被折叠?



