在 Python 中,列表元素的删除操作有 remove、del 和 pop 三种方式,请说明它们各自的使用场景、参数要求、返回值以及可能引发的异常有何不同?
考察说明
考察对 Python 列表删除操作的基础理解与辨析能力。
回答思路
- 【回答框架 1】remove 是列表对象的方法,按值删除第一个匹配的元素。参数是要删除的值。如果列表中没有该值,会抛出 ValueError。它不返回被删除的元素,返回 None。
- 【回答框架 2】del 是 Python 语句,按索引或切片删除。可以删除单个元素、切片,甚至删除整个列表引用。若索引超出范围,抛出 IndexError。它没有返回值,用于按位置删除。
- 【回答框架 3】pop 是列表对象的方法,按索引删除并返回该元素。如果不指定索引,默认删除并返回最后一个元素。若索引超出范围,抛出 IndexError。它常用于需要获取被删除元素的场景。
- 【回答框架 4】选择何种方式取决于需求:需要返回值或模拟栈操作时用 pop;需要按值删除时用 remove;需要按索引删除且不关心返回时用 del。
- 【回答框架 5】三种方式都会修改原列表,均可用于可变序列。但 del 还能删除变量本身,而 remove 和 pop 只针对列表内容操作。
- 【关键点 1】remove 按值删首个匹配,无返回值,无匹配抛 ValueError。
- 【关键点 2】del 按索引或切片删,无返回值,索引越界抛 IndexError。
- 【关键点 3】pop 按索引删并返回该元素,默认删末尾,索引越界抛 IndexError。
- 【易错点 1】使用 remove 删除循环中的元素时,跳过下一项需谨慎处理索引。
- 【易错点 2】pop 在空列表上调用会抛 IndexError,需先判断。
- 【易错点 3】del 删除整个列表后,再访问该变量会抛 NameError。