直接遍历列表删除
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)# 会漏删,因为删除一个元素后,后面的元素向前补位,导致紧跟的一个元素被跳过.
通过遍历索引删除
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)
用新列表记录需要保留的元素
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) # 没有问题,也能保留原有顺序,但是创建了新列表
通过索引倒着删除
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.pop(el) # 没有问题,且保留原顺序 # l1.remove(l1[el]) # 没有问题,但是不能保留原有顺序 # del l1[el] # 这样则会保留原有顺序,小伙伴可以想一想为什么 print(l1)
通过递归函数删除
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: # 直到最后,列表里的元素都是一个,运行了else return 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] '''
毫无疑问set()是最方便的
l1 = [1, 1, 2, 2, 3, 3, 3, 3, 6, 6, 5, 5, 2, 2] lst = list(set(l1)) print(lst)
以上是Python删除列表中重复元素的方法有哪些的详细内容。更多信息请关注PHP中文网其他相关文章!

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于Seaborn的相关问题,包括了数据可视化处理的散点图、折线图、条形图等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于进程池与进程锁的相关问题,包括进程池的创建模块,进程池函数等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于简历筛选的相关问题,包括了定义 ReadDoc 类用以读取 word 文件以及定义 search_word 函数用以筛选的相关内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于数据类型之字符串、数字的相关问题,下面一起来看一下,希望对大家有帮助。

VS Code的确是一款非常热门、有强大用户基础的一款开发工具。本文给大家介绍一下10款高效、好用的插件,能够让原本单薄的VS Code如虎添翼,开发效率顿时提升到一个新的阶段。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于numpy模块的相关问题,Numpy是Numerical Python extensions的缩写,字面意思是Python数值计算扩展,下面一起来看一下,希望对大家有帮助。

pythn的中文意思是巨蟒、蟒蛇。1989年圣诞节期间,Guido van Rossum在家闲的没事干,为了跟朋友庆祝圣诞节,决定发明一种全新的脚本语言。他很喜欢一个肥皂剧叫Monty Python,所以便把这门语言叫做python。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

Dreamweaver CS6
视觉化网页开发工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

WebStorm Mac版
好用的JavaScript开发工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。