Python 列表常用函数介绍
1. append()
- 作用:在列表末尾添加一个元素。
- 参数:任意类型的单个元素。
- 特点:直接修改原列表,无返回值。
- 示例:
lst = [1, 2, 3] lst.append(4) print(lst) # 输出: [1, 2, 3, 4]# 添加列表作为单个元素 lst.append([5, 6]) print(lst) # 输出: [1, 2, 3, 4, [5, 6]]
2. extend()
- 作用:将可迭代对象中的元素逐个添加到列表末尾。
- 参数:可迭代对象(如列表、元组、字符串)。
- 特点:直接修改原列表,无返回值。
- 示例:
lst = [1, 2] lst.extend([3, 4]) print(lst) # 输出: [1, 2, 3, 4]# 扩展字符串(逐字符添加) lst.extend("abc") print(lst) # 输出: [1, 2, 3, 4, 'a', 'b', 'c']
3. insert()
- 作用:在指定索引位置插入元素,原元素后移。
- 参数:
(index, element)
,索引超出范围时插入末尾。 - 特点:直接修改原列表。
- 示例:
lst = ['a', 'b', 'c'] lst.insert(1, 'x') print(lst) # 输出: ['a', 'x', 'b', 'c']# 索引超出范围时插入末尾 lst.insert(10, 'y') print(lst) # 输出: ['a', 'x', 'b', 'c', 'y']# 使用负数索引 lst.insert(-1, 'z') # 插入到倒数第一个位置前 print(lst) # 输出: ['a', 'x', 'b', 'c', 'z', 'y']
4. remove()
- 作用:删除列表中第一个匹配的元素。
- 参数:要删除的元素值,若不存在则引发
ValueError
。 - 示例:
lst = [10, 20, 30, 20] lst.remove(20) print(lst) # 输出: [10, 30, 20]# 删除不存在的元素会报错 # lst.remove(99) # ValueError: list.remove(x): x not in list
5. pop()
- 作用:删除并返回指定索引的元素(默认最后一个元素)。
- 参数:可选索引(默认
-1
),索引越界引发IndexError
。 - 示例:
lst = [10, 20, 30] popped = lst.pop() # 默认删除最后一个 print(popped) # 输出: 30 print(lst) # 输出: [10, 20]popped = lst.pop(0) # 删除索引0的元素 print(popped) # 输出: 10 print(lst) # 输出: [20]
6. sort()
- 作用:原地对列表排序(默认升序),无返回值。
- 参数:
key
:排序依据的函数(如key=len
按长度排序)。reverse
:是否降序(True
为降序)。
- 示例:
lst = [3, 1, 4, 2] lst.sort() print(lst) # 输出: [1, 2, 3, 4]# 降序排序 lst.sort(reverse=True) print(lst) # 输出: [4, 3, 2, 1]# 按字符串长度排序 words = ['apple', 'date', 'banana'] words.sort(key=len) print(words) # 输出: ['date', 'apple', 'banana']
7. reverse()
- 作用:原地反转列表元素顺序,无返回值。
- 示例:
lst = [1, 2, 3] lst.reverse() print(lst) # 输出: [3, 2, 1]# 与切片反转对比(生成新列表) new_lst = lst[::-1] print(new_lst) # 输出: [1, 2, 3] print(lst) # 输出: [3, 2, 1](原列表未变)
对比总结
方法 | 作用 | 是否修改原列表 | 返回值 |
---|---|---|---|
| 添加单个元素到末尾 | 是 |
|
| 扩展可迭代对象的元素到末尾 | 是 |
|
| 在索引 | 是 |
|
| 删除第一个值为 | 是 |
|
| 删除并返回索引 | 是 | 被删元素 |
| 原地排序 | 是 |
|
| 原地反转元素顺序 | 是 |
|
关键注意事项
append
vsextend
:append
添加整个对象(可能形成嵌套列表),extend
展开可迭代对象。
- 原地操作:
- 上述方法均直接修改原列表(除
sorted()
函数外)。
- 上述方法均直接修改原列表(除
- 错误处理:
remove()
和pop()
可能引发ValueError
或IndexError
,需提前检查元素或索引是否存在。