Python删除list中多个相同元素

pop和remove方法都可以删除list中的元素,个人更倾向于使用pop方法。

 

pop方法:删除过程中还能返回被删除的值

alist = ['d', 'd', 7, 4, 'd', 'd', 2, 1]
for i in range(len(alist)-1,-1,-1): # 倒序循环,从最后一个元素循环到第一个元素。不能用正序循环,因为正序循环删除元素后后续的列表的长度和元素下标同时也跟着变了,len(alist)是动态的。
    if alist[i] == 'd':
        alist.pop(i) # 将index=i处的元素删除并return该元素。如果不想保存这个被删除的值只要不把alist.pop(i)赋值给变量就好,不影响程序运行。

print(alist) # [7, 4, 2, 1]

 

 

remove方法:

从左往右,删除首次出现的指定元素

删除过程不会返回被删除的值

>>> alist = ['d', 'd', 7, 4, 'd', 'd', 2, 1]
>>> for i in range(len(alist)-1,-1,-1): # 同样不能用正序循环,for i in range(0,len(alist)), 用了remove()之后,len(alist)是动态的,会产生列表下标越界错误
      if alist[i] == 'd':
          alist.remove('d') # 从左往右删除首次出现的值为‘d'的元素

        
>>> alist
[7, 4, 2, 1]
>>> 
>>> 

 

posted @ 2018-01-02 23:10  huahuayu  阅读(23480)  评论(0编辑  收藏  举报