一、区别
| 操作 | 语法 | 是否原地修改 | 返回值 | 加几个元素 |
|---|---|---|---|---|
append |
lst.append(x) |
✅ 是 | None | 1 个(把 x 当整体) |
extend |
lst.extend(iter) |
✅ 是 | None | 多个(拆开逐个加) |
+ |
lst1 + lst2 |
❌ 否 | 新列表 | 拼接两个列表 |
pop |
lst.pop(i) |
✅ 是(删除) | 被删的那个元素 | ------ |
二、详细功能
append、extend、sort、reverse 都是"原地改,返回 None"。
1. append(x) ------ 末尾加一个元素(把x当做一个整体加进去)
lst = 1, 2
result = lst.append(3)
print(lst) # 1, 2, 3 ← 原列表被改
print(result) # None ← 返回值是 None
lst = 1, 2lst.append(3, 4)
print(lst) # 1, 2, \[3, 4] ← 嵌套了!
2. extend(iter) ------ 末尾加多个 元素(把可迭代对象拆开,逐个加进去)
lst = 1, 2
result = lst.extend(3, 4)
print(lst) # 1, 2, 3, 4 ← 拆开逐个加
print(result) # None
3. + ------ 拼接,返回新列表(不修改原列表 ,返回新列表**)**
lst = 1, 2
new = lst + 3, 4
print(lst) # 1, 2 ← 原列表不变
print(new) # 1, 2, 3, 4 ← 新列表
4. pop(i) ------ 原地删除并返回被删元素
lst = 1, 2, 3
x = lst.pop(0)
print(lst) # 2, 3 ← 原列表被删
print(x) # 1 ← 返回被删的元素
三、例题
对于列表 my_list = [['a', 'b'], 1, 2],执行哪项操作可以生成新列表 ['a', 'b', 'c']?(B)
my_list[0] = ['a', 'b']
| 选项 | 代码 | 结果 | 对错 |
|---|---|---|---|
| A | new_list = my_list[0].append('c') |
None(原列表被改成 ['a','b','c'],但返回 None) |
❌ |
| B | new_list = my_list[0] + ['c'] |
['a', 'b', 'c'](新列表,原列表不变) |
✅ |
| C | new_list = my_list[0].extend(['c']) |
None(原列表被改成 ['a','b','c'],但返回 None) |
❌ |
| D | new_list = my_list.pop(0).append('c') |
None(pop 返回列表,append 返回 None) |
❌ |
四、总结
lst = 1, 2
lst.append(3) # lst → 1,2,3 返回 None
lst.append(3,4) # lst → 1,2,\[3,4] 返回 None(嵌套)
lst.extend(3,4) # lst → 1,2,3,4 返回 None(拆开)
lst + 3,4 # 新列表 1,2,3,4 原 lst 不变
lst.pop(0) # lst → 2 返回 1(被删元素)