一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第11天,点击查看活动详情。
0 环境
- 编辑器:idea
- 系统版本:win10
- python版本:3.9.6
1 列表删除
1 remove
输入help(list.remove)
查看,删除第一个匹配的元素。且在原列表上修改,返回为None。
删除存在的值时,可以看出,从左到右数,删除第一个满足条件的值。
def remove_demo():
a = [1,2,31,1,2,1]
a.remove(1)
print("a ==>", a)
删除一个不存在的值时,抛出ValueError
2 pop
help(list.pop)
,当不传入参数的时候,则默认返回并且删除最后一个值。和正常pop一样理解。当传入index(索引值,和上面直接找值删除不同的。)参数的时候,返回并且删除该index所在的位置。
存在列表的索引值时,啥索引不加,默认pop最后一个索引,否则根据索引值查找,返回删除的索引下的值,将该列表索引下的元素删除。
def pop_demo():
a = [1,2,3,4,5,6,7]
b = a.pop()
# pop后的值
print("a ==>", a)
# pop掉的索引
print("b ==>", b)
b = a.pop(0)
# pop后的值
print("a ==>", a)
# pop掉的索引
print("b ==>", b)
当列表中没有该索引值时,会抛出异常IndexError,索引错误。
3 clear
输入help(list.clear)
,删除列表中所有元素。
可以看出虽然清空了列表中的所有的元素,但是列表对象依旧存在。
3 总结
remove根据值删除元素,返回None,列表中无该值,报值错误。pop分为2种,不传入index参数,时间复杂度O(1)。当pop传入index参数时,时间复杂度时O(n)。删除索引时,会返回删除的元素。clear相对来说比较粗暴,删除全部的值,留下一个列表对象空壳。