python笔记 列表删除

99 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第11天,点击查看活动详情

0 环境

  • 编辑器:idea
  • 系统版本:win10
  • python版本:3.9.6

1 列表删除

1 remove

输入help(list.remove)查看,删除第一个匹配的元素。且在原列表上修改,返回为None。

image.png

删除存在的值时,可以看出,从左到右数,删除第一个满足条件的值。

def remove_demo():
    a = [1,2,31,1,2,1]
    a.remove(1)
    print("a ==>", a)

image.png

删除一个不存在的值时,抛出ValueError

image.png

2 pop

help(list.pop),当不传入参数的时候,则默认返回并且删除最后一个值。和正常pop一样理解。当传入index(索引值,和上面直接找值删除不同的。)参数的时候,返回并且删除该index所在的位置。

image.png

存在列表的索引值时,啥索引不加,默认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)

image.png

image.png

当列表中没有该索引值时,会抛出异常IndexError,索引错误。 image.png

3 clear

输入help(list.clear),删除列表中所有元素。

image.png

可以看出虽然清空了列表中的所有的元素,但是列表对象依旧存在。 image.png

3 总结

remove根据值删除元素,返回None,列表中无该值,报值错误。pop分为2种,不传入index参数,时间复杂度O(1)。当pop传入index参数时,时间复杂度时O(n)。删除索引时,会返回删除的元素。clear相对来说比较粗暴,删除全部的值,留下一个列表对象空壳。