文章目录

  • 1 使用切片删除多个元素
  • 2 使用列表解析
  • 3 利用romove()函数
  • 4 利用pop()函数

1 使用切片删除多个元素

利用索引进行对应索引元素的删除
改变原始列表

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]del my_list[2:5]# 删除索引2到4之间的元素print(my_list)# [1, 2, 6, 7, 8, 9]

2 使用列表解析

需要要删除的元素或者要删除元素的索引
不改变原始列表,创建新列表

# 1 直接利用删除要素my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]elements_to_remove = [3, 5, 7]# 循环my_list = [x for x in my_list if x not in elements_to_remove]print(my_list)# [1, 2, 4, 6, 8, 9]# *****************************************# 2 利用删除要素的索引my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]elements_to_remove_index = [2, 4, 6]# 循环my_list = [x for x in my_list if x not in elements_to_remove_index]print(my_list)# [1, 3, 5, 7, 8, 9]# 3 使用enumerate(),返回列表的【indexs,datas】lis = ['A','B','C','D','E','F','G']index_list = [1,2,6]lis = [temp_data for index, temp_data in enumerate(lis) if index not in index_list]print('删除后lis的值:%s' %lis)# 删除后lis的值:['A', 'D', 'E', 'F']

上述两种方法的结果相同

3 利用romove()函数

需要要删除的元素
改变原始列表

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]elements_to_remove = [3, 5, 7]# 循环去除for element in elements_to_remove:my_list.remove(element)print(my_list)# [1, 2, 4, 6, 8, 9]

4 利用pop()函数

需要要删除的元素的索引
改变原始列表

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]indices_to_remove_index = [2, 4, 6]# 将索引按照倒序排列indices_to_remove_index.sort(reverse=True)# 从后往前删除,避免索引错位# [6, 4, 2]for index in indices_to_remove_index:my_list.pop(index)print(my_list)# [1, 2, 4, 6, 8, 9]