Python列表的五种删除元素的方式

1、remove() 根据元素值来删除

删除列表中指定值的第一个匹配项,一次删除一个元素,如果元素重复则删除第一个。如果元素不存在就抛出异常 ValueError。无返回值。

语法格式:list_name.remove(element)

参数说明:

element :要删除的对象。

代码演示:

lst = ['hello','world',90,'hello','python',10]

print('原列表lst:',lst,id(lst))

# 一次只删除一个元素,如果重复则删除第一个
lst.remove('hello')
print('删除 hello 后的列表lst:',lst,id(lst))  # ['world', 90, 'hello', 'python', 10]

lst.remove(90)
print('删除 90 后的列表lst:',lst,id(lst))
图片[1]-Python列表的五种删除元素的方式-尤尤'blog

如果要删除的元素不存在,就会抛出异常 ValueError。

lst = ['hello','world',90,'hello','python',10]

# 如果要删除的元素不存在,则抛出异常ValueError
lst.remove(66)  # ValueError: list.remove(x): x not in list
图片[2]-Python列表的五种删除元素的方式-尤尤'blog

2、pop() 根据索引删除元素

删除一个指定索引位置上的元素,如果不指定索引,则删除列表的最后一个元素。指定的索引不存在,抛出异常 IndexError。

语法格式:list_name.pop(index)

参数说明:

index:索引位置,默认为-1,即列表最后一个元素。

返回值:返回被删除的那个元素。

代码演示:

lst = ['hello',90,'world','hello','python',10]

print('原列表lst:',lst,id(lst))

# 删除索引为2的元素
lst_pop = lst.pop(2)
print('删除的元素是:',lst_pop)
print('删除索引为2的元素后的列表:',lst,id(lst))  # ['hello', 90, 'hello', 'python', 10] 2308700110272

# 若不指定索引,删除列表最后一个元素
lp = lst.pop()
print('删除的元素是:',lp)
print('不指定索引,删除元素后的列表:',lst,id(lst))  # ['hello', 90, 'hello', 'python'] 2308700110272
图片[3]-Python列表的五种删除元素的方式-尤尤'blog

如果指定的索引不存在,就会抛出异常 IndexError。

lst = ['hello',90,'world','hello','python',10]

# 如果指定索引不存在,则抛出异常
lst.pop(8)  # IndexError: pop index out of range
图片[4]-Python列表的五种删除元素的方式-尤尤'blog

3、clear() 删除列表所有元素

清空列表元素,只留下一个空列表,列表对象还在。

语法格式:list_name.clear()

参数说明:无参。

代码演示:

lst = ['hello','world',90,'hello','python',10]
print('清空列表之前:',lst,id(lst))
lst.clear()     # 清空列表元素
print('clear清空列表之后:',lst,id(lst))
图片[5]-Python列表的五种删除元素的方式-尤尤'blog

4、del关键字

可以用于删除指定索引的元素,也可以直接删除整个列表对象,还可以删除多个元素。

语法格式:

del list_name 删除整个列表。

del list_name[index] 删除指定索引的元素。

del list_name[start:stop] 删除指定区间 [start, stop) 的元素。

代码演示:

lst = [0,10,20,30,40,50,60,70,80,90]

print('原列表:',lst,id(lst))

# 删除指定索引的元素
del lst[2]      # [10, 20, 40, 50]
print('删除索引为2的元素后的列表:',lst,id(lst))

# 删除指定区间的元素
del lst[3:7]
print('删除[3:7]的元素后的列表:',lst,id(lst))
图片[6]-Python列表的五种删除元素的方式-尤尤'blog

使用 del 关键字删除整个列表,包括列表对象。

lst = [0,10,20,30,40,50,60,70,80,90]

# 删除列表对象
del lst

# 列表lst被删除了,多余打印它会抛出异常NameError
print(lst)  # NameError: name 'lst' is not defined. Did you mean: 'lst1'?
图片[7]-Python列表的五种删除元素的方式-尤尤'blog

使用 del 关键字清空列表。

lst = [0,10,20,30,40,50,60,70,80,90]

print('原列表:',lst,id(lst))
del lst[:]
print('del lst[:]后的列表:',lst,id(lst))
图片[8]-Python列表的五种删除元素的方式-尤尤'blog

del list_name 和 del list_name[:] 的区别

del list_name:清空元素的同时也删除了列表对象。

del list_name[:]:清空列表元素,列表对象还在,只剩下一个空列表。

5、切片操作 删除单个或多个元素

将不要的部分切走,用空列表替代不要的那部分。可用作删除多个对象。

语法格式:list_name[start,stop] = []

参数说明:

start:开始位置。

stop:结束位置。不包含stop。

代码演示:

lst = [0,10,20,30,40,50,60,70,80,90]
print('原列表:',lst,id(lst))   # 原列表: [0, 10, 20, 30, 40, 50, 60, 70, 80, 90] 1492468301248
lst[1:4] = []       # 用空列表替代不要的那部分元素
print('切片后:',lst,id(lst))   # 切片后: [0, 40, 50, 60, 70, 80, 90] 1492468301248
图片[9]-Python列表的五种删除元素的方式-尤尤'blog

清空列表元素:list_name[:] = []

lst = [0,10,20,30,40,50,60,70,80,90]

print('原列表:',lst,id(lst))   # 原列表: [0, 10, 20, 30, 40, 50, 60, 70, 80, 90] 1492468301248

lst[:] = []       # 用空列表替代不要的那部分元素

print('切片后:',lst,id(lst))   # 切片后: [0, 40, 50, 60, 70, 80, 90] 1492468301248
图片[10]-Python列表的五种删除元素的方式-尤尤'blog

小总结:清空列表元素的几种方式

1)clear()

lst = ['hello',10,20,'python','abc']
print('原列表:',lst)
lst.clear()
print('clear后的列表:',lst)
图片[11]-Python列表的五种删除元素的方式-尤尤'blog

2)del关键字 —-> del list_name[:]

lst = ['hello',10,20,'python','abc']
print('原列表:',lst)
del lst[:]
print('del lst[:]后的列表:',lst)
图片[12]-Python列表的五种删除元素的方式-尤尤'blog

3)切片操作 —-> liat_name[:] = []

lst = ['hello',10,20,'python','abc']
print('原列表:',lst)
lst[:] = []
print('lst[:] = []后的列表:',lst)
图片[13]-Python列表的五种删除元素的方式-尤尤'blog

4)使用* —-> list_name *= 0 列表中的数据重复0次

lst = ['hello',10,20,'python','abc']
print('原列表:',lst,id(lst))
lst *= 0
print('lst *= 0后的列表:',lst,id(lst))
图片[14]-Python列表的五种删除元素的方式-尤尤'blog
© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容