python 剔除列表中的所有的某一元素

剔除列表中所有的空元素

我尝试过 for index in rang(0, len(mylist))  + mylist.pop/remove ;或者是 for item in mylist + mylist.pop/remove, 都会因为失去元素导致数组越界问题,即便是使pop或者remove完了使index-=1,仍然会越界 或者删不干净。

方法如下,见代码:

mylist = []
copy_mylist = mylist
for item in copy_mylist:
    if item == "":
        mylist.remove(item)

 

方法二:

方法二同样适用于剔除列表中的相同元素,且保持原有序列。

my_list = [1, 2, 3, "", 5, "", 7, "", 10]
tmp_list = []
[tmp_list.append(item) for item in my_list if item]
my_list = tmp_list
print(my_list)

 

执行结果:

[1, 2, 3, 5, 7, 10]

再说说去重,本质上跟文章主题是一样的。也是剔除一些元素。

my_list = [1, 2, 3, 3, 5, 7, 7, 7, 10]
tmp_list = []
[tmp_list.append(item) for item in my_list if item not in tmp_list]
my_list = tmp_list
print(my_list)

 

执行结果:

[1, 2, 3, 5, 7, 10]

发表评论