版本一: 直接遍历列表删除

l1 = [1, 1, 2, 2, 3, 3, 3, 3, 6, 6, 5, 5, 2, 2]
for el in l1:if l1.count(el) > 1:l1.remove(el)
print(l1)结果:
[1, 3, 3, 6, 5, 2, 2]

会漏删,因为删除一个元素后,后面的元素向前补位,导致紧跟的一个元素被跳过.

版本二: 通过遍历索引删除

l1 = [1, 1, 2, 2, 3, 3, 3, 3, 6, 6, 5, 5, 2, 2]
for el in range(len(l1)):
# 此时len(l1)已经确定,不会随着l1后面的变化而变化if l1.count(l1[el]) > 1:l1.remove(l1[el])
print(l1)

会报错,因为删除元素后导致l1的长度变短了,但是for遍历的还是之前的索引长度,会导致索引超过范围而报错

版本三: 通过遍历创建的切片来删除原列表

l1 = [1, 1, 2, 2, 3, 3, 3, 3, 6, 6, 5, 5, 2, 2]
for el in l1[:]:if l1.count(el) > 1:l1.remove(el)
print(l1)   结果:
[1, 3, 6, 5, 2]

没有问题,可以去重,但是无法保留原有的顺序

版本四: 用新列表记录需要保留的元素

l1 = [1, 1, 2, 2, 3, 3, 3, 3, 6, 6, 5, 5, 2, 2]
lst = []
for el in l1:if lst.count(el) < 1:lst.append(el)
print(lst)   # 没有问题,也能保留原有顺序,但是创建了新列表结果:
[1, 2, 3, 6, 5]

版本五: 通过索引倒着删除

l1 = [1, 1, 2, 2, 3, 3, 3, 3, 6, 6, 5, 5, 2, 2]
for el in range(len(l1)-1, -1, -1):if l1.count(l1[el]) > 1:l1.remove(l1[el])
print(l1)   # 没有问题,但是不能保留原有顺序结果:
[1, 3, 6, 5, 2]

版本六: 通过递归函数删除

l1 = [1, 1, 2, 2, 3, 3, 3, 3, 6, 6, 5, 5, 2, 2]
def set_lst(lst):for el in lst:if lst.count(el) > 1:lst.remove(el)set_lst(lst)    # 每次开辟一个新函数,判断上次被删除了一个元素后的列表else:  # 直到最后,列表里的元素都是一个,运行了elsereturn lst
print(set_lst(l1))  # 因为是从前面开始删除的,所以不保留原有顺序
'''
[1, 1, 2, 2, 3, 3, 3, 3, 6, 6, 5, 5, 2, 2]
[1, 2, 2, 3, 3, 3, 3, 6, 6, 5, 5, 2, 2]
[1, 2, 3, 3, 3, 3, 6, 6, 5, 5, 2, 2]
[1, 3, 3, 3, 3, 6, 6, 5, 5, 2, 2]
[1, 3, 3, 3, 6, 6, 5, 5, 2, 2]
[1, 3, 3, 6, 6, 5, 5, 2, 2]
[1, 3, 6, 6, 5, 5, 2, 2]
[1, 3, 6, 5, 5, 2, 2]
[1, 3, 6, 5, 2, 2]
[1, 3, 6, 5, 2]   return lst = [1, 3, 6, 5, 2]
'''结果:
[1, 3, 6, 5, 2]

版本七: 毫无疑问set()是最方便的

l1 = [1, 1, 2, 2, 3, 3, 3, 3, 6, 6, 5, 5, 2, 2]
lst = list(set(l1))
print(lst)结果:
[1, 2, 3, 5, 6]

删除列表中重复元素的几种方法相关推荐

  1. java删除数组中重复元素的几种方法

    Java操控数组,删除数组中所有的重复元素,使其数组元素全部唯一,有以下几种方法: 1,使用set(最好想到),set本身就是不重复的集合: package Array_test;import jav ...

  2. python列表去掉特定项_python实现删除列表中某个元素的3种方法

    python中关于删除list中的某个元素,一般有三种方法:remove.pop.del: 1.remove: 删除单个元素,删除首个符合条件的元素,按值删除 举例说明: ? [1, 3, 4, 5, ...

  3. Python 中list中所有值加和_Python 中去除列表中重复元素的5种方法

    (点击上方快速关注并设置为星标,一起学Python) 1.使用集合 Python中集合的元素是唯一的,具有去重的功能.使用集合与列表可以互转的特性,将列表转换为集合去重,再将集合转换为列表: def ...

  4. 【python】list 删除列表中某个元素的3种方法;附加删除numpy数组中的指定索引元素的方法

    方法 python中关于删除list中的某个元素,一般有三种方法: remove.pop.del 实例 1.remove: 删除单个元素,删除首个符合条件的元素,按值删除 2.pop: 删除单个或多个 ...

  5. python如何去除列表中的重复项_Python 中去除列表中重复元素的5种方法

    (点击上方快速关注并设置为星标,一起学Python) 1.使用集合 Python中集合的元素是唯一的,具有去重的功能.使用集合与列表可以互转的特性,将列表转换为集合去重,再将集合转换为列表: def ...

  6. 在列表中增加元素的三种方法

    在列表中增加元素 在列表中增加元素的方法有很多种,如下: (1)通过append方法可以向列表中添加元素 (2)通过extend方法可以将另一个列表中的元素逐一添加到列表中 (3)通过insert( ...

  7. Js中去除数组中重复元素的几种方法

    方法1: 1 Array.prototype.method1=function(){ 2 var arr=[]; 3 for(var i=0;i<this.length;i++){ 4 if(a ...

  8. python去重复元素_Python实现去除列表中重复元素的方法总结【7种方法】

    这里首先给出来我很早之前写的一篇博客,Python实现去除列表中重复元素的方法小结[4种方法],感兴趣的话可以去看看,今天是在实践过程中又积累了一些方法,这里一并总结放在这里. 由于内容很简单,就不再 ...

  9. python去重复排序_Python实现删除排序数组中重复项的两种方法示例

    本文实例讲述了Python实现删除排序数组中重复项的两种方法.分享给大家供大家参考,具体如下: 对于给定的有序数组nums,移除数组中存在的重复数字,确保每个数字只出现一次并返回新数组的长度 注意:不 ...

最新文章

  1. Environ. Microbiol. | 土壤pH和温度调节农业生态系统中丰富和稀有细菌群落的构建过程...
  2. HDOJ 1166 敌兵布阵
  3. java系统教程_Java 教程(开发环境配置+基础语法)
  4. SAP转储订单(STO)
  5. javascript中函数参数以及函数中局部变量作用域一点点理解
  6. 网信金融 与 金银猫合作
  7. hdu 2553 N皇后问题 搜索 回溯法
  8. SQL 强制指定索引加快查询速度
  9. python跨文件复制sheet_Python办公自动化-工作表复制(可跨文件)
  10. 购买域名以及申请证书
  11. AI如何变革家居软装?拍图就能搜商品,深度学习平台飞桨新玩法
  12. 【iOS】Swift3中NSFetchRequest报错:Generic parameter 'ResultType' could not be inferred
  13. 【蓝桥杯】题目 1117: K-进制数
  14. 如何为Linux系统中的SSH添加双重认证
  15. 设计模式之GOF23工厂模式02
  16. hexo添加_hexo 如何给文章添加目录
  17. [莓控]BlackBerry7290用户指南(简体中文)
  18. APP原生开发与APP混合开发的区别
  19. spring boot验证码的实现
  20. 机器学习入门之:使用 scikit-learn 决策分类树来预测泰坦尼克号沉船生还情况

热门文章

  1. 谷歌html5特效,9款HTML5实现的超酷特效
  2. Linux中的NFS共享
  3. 西安电子科技大学计算机科学与技术(电子信息专业)考研经验分享
  4. 2022年全球市场屏蔽功率电感器总体规模、主要生产商、主要地区、产品和应用细分研究报告
  5. IDesign C#命名规范(翻译2.32)
  6. mitmdump抓取App数据
  7. Linux内存分配系统
  8. [BZOJ3523][Poi2014]KLO-Bricks——全网唯一 一篇O(n)题解+bzoj最优解
  9. DELL PowerEdge R620 U盘启动
  10. 生产制造业网络运维监控方案