返回顶部
首页 > 资讯 > 后端开发 > Python >Python中移除List重复项的五种方法
  • 521
分享到

Python中移除List重复项的五种方法

Python移除List重复项Python移除重复项 2022-06-02 22:06:31 521人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

 本文列些处几种去除在python 列表中(list)可能存在的重复项,这在很多应用程序中都会遇到的需求,作为程序员最好了解其中的几种方法 以备在用到时能够写出有效的程序。 方法1:朴素方法 这种方式是在

 本文列些处几种去除在python 列表中(list)可能存在的重复项,这在很多应用程序中都会遇到的需求,作为程序员最好了解其中的几种方法 以备在用到时能够写出有效的程序。

方法1:朴素方法

这种方式是在遍历整个list的基础上,将第一个出现的元素添加在新的列表中。

示例代码:


# Python 3 code to demonstrate 
# removing duplicated from list 
# using naive methods 
  
# initializing list
test_list = [1, 3, 5, 6, 3, 5, 6, 1]
print ("The original list is : " +  str(test_list))
  
# using naive method
# to remove duplicated 
# from list 
res = []
for i in test_list:
    if i not in res:
        res.append(i)
  
# printing list after removal 
print ("The list after removing duplicates : " + str(res))

→ 输出结果:
The original list is : [1, 3, 5, 6, 3, 5, 6, 1]
The list after removing duplicates : [1, 3, 5, 6]

方法2:列表解析式

这种方式实际上是第一种方法的简化版,它利用列表解析式,使用一行代码就可以替代上面的循环方式。

示例代码:


# Python 3 code to demonstrate 
# removing duplicated from list 
# using list comprehension
  
# initializing list
test_list = [1, 3, 5, 6, 3, 5, 6, 1]
print ("The original list is : " +  str(test_list))
  
# using list comprehension
# to remove duplicated 
# from list 
res = []
[res.append(x) for x in test_list if x not in res]
  
# printing list after removal 
print ("The list after removing duplicates : " + str(res))

→ 输出结果:
The original list is : [1, 3, 5, 6, 3, 5, 6, 1]
The list after removing duplicates : [1, 3, 5, 6]

方法3:使用set()

这种方式是最流行的方法来去除列表中的重复元素。但该方法的最大的一个缺点就是使用过后列表中元素的顺序不再继续保持与原来一致了。

示例代码:


# Python 3 code to demonstrate 
# removing duplicated from list 
# using set()
  
# initializing list
test_list = [1, 5, 3, 6, 3, 5, 6, 1]
print ("The original list is : " +  str(test_list))
  
# using set()
# to remove duplicated 
# from list 
test_list = list(set(test_list))
  
# printing list after removal 
# distorted ordering
print ("The list after removing duplicates : " + str(test_list))

→ 输出结果:
The original list is : [1, 5, 3, 6, 3, 5, 6, 1]
The list after removing duplicates : [1, 3, 5, 6]

方法4:利用列表解析式 + enumerate()

该方法是在列表解析式的基础上利用枚举来去除重复元素。通过检查元素是否已经在列表中存在从而将其略过。这种方法可以保持列表中的元素顺序不会改变。

示例代码:


# Python 3 code to demonstrate 
# removing duplicated from list 
# using list comprehension + enumerate()
  
# initializing list
test_list = [1, 5, 3, 6, 3, 5, 6, 1]
print ("The original list is : " +  str(test_list))
  
# using list comprehension + enumerate()
# to remove duplicated 
# from list 
res = [i for n, i in enumerate(test_list) if i not in test_list[:n]]
  
# printing list after removal 
print ("The list after removing duplicates : " + str(res))

→ 输出结果:
The original list is : [1, 5, 3, 6, 3, 5, 6, 1]
The list after removing duplicates : [1, 5, 3, 6]

方法5:利用collections.OrderedDict.fromkeys()

这是完成特殊任务中最快的方法。它先是将列表中的重复项移除并返回一个字典,最后转换成列表。这种方法对于字符串也可以进行处理。

示例代码:


# Python 3 code to demonstrate 
# removing duplicated from list 
# using collections.OrderedDict.fromkeys()
from collections import OrderedDict
  
# initializing list
test_list = [1, 5, 3, 6, 3, 5, 6, 1]
print ("The original list is : " +  str(test_list))
  
# using collections.OrderedDict.fromkeys()
# to remove duplicated 
# from list 
res = list(OrderedDict.fromkeys(test_list))
  
# printing list after removal 
print ("The list after removing duplicates : " + str(res))

→ 输出结果:
The original list is : [1, 5, 3, 6, 3, 5, 6, 1]
The list after removing duplicates : [1, 5, 3, 6]

方法6:处理嵌套列表中的重复元素

对于多维列表(列表嵌套)中的重复元素去除。这里假设列表中元素(也是列表)它们具有相同的元素(但不一定顺序相同)都被当做重复元素。那么下面使用 set() + sorted() 方法来完成任务。

 示例代码:


# python3 code to demonstrate
# removing duplicate sublist 
# using set() + sorted()
  
# initializing list
test_list = [[1, 0, -1], [-1, 0, 1], [-1, 0, 1],
                           [1, 2, 3], [3, 4, 1]]
  
# printing original list
print("The original list : " + str(test_list))
  
# using set() + sorted()
# removing duplicate sublist
res = list(set(tuple(sorted(sub)) for sub in test_list))
  
# print result
print("The list after duplicate removal : " + str(res)) 

→ 输出结果:
The original list : [[1, 0, -1], [-1, 0, 1], [-1, 0, 1], [1, 2, 3], [3, 4, 1]]
The list after duplicate removal : [(-1, 0, 1), (1, 3, 4), (1, 2, 3)]

也可以利用 set() + map() + sorted()

 示例代码:


# Python3 code to demonstrate
# removing duplicate sublist 
# using set() + map() + sorted()
  
# initializing list
test_list = [[1, 0, -1], [-1, 0, 1], [-1, 0, 1],
                           [1, 2, 3], [3, 4, 1]]
  
# printing original list
print("The original list : " + str(test_list))
  
# using set() + map() + sorted()
# removing duplicate sublist
res = list(set(map(lambda i: tuple(sorted(i)), test_list)))
  
# print result
print("The list after duplicate removal : " + str(res))

→ 输出结果:
The original list : [[1, 0, -1], [-1, 0, 1], [-1, 0, 1], [1, 2, 3], [3, 4, 1]]
The list after duplicate removal : [(-1, 0, 1), (1, 3, 4), (1, 2, 3)]

到此这篇关于Python中移除List重复项的五种方法的文章就介绍到这了,更多相关Python 移除List重复项 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python中移除List重复项的五种方法

本文链接: https://lsjlt.com/news/10674.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python中移除List重复项的五种方法
     本文列些处几种去除在Python 列表中(list)可能存在的重复项,这在很多应用程序中都会遇到的需求,作为程序员最好了解其中的几种方法 以备在用到时能够写出有效的程序。 方法1:朴素方法 这种方式是在...
    99+
    2022-06-02
    Python 移除List重复项 Python 移除重复项
  • python中list的五种查找方法
    Python中是有查找功能的,五种方式:in、not in、count、index,find 前两种方法是保留字,后两种方式是列表的方法。 下面以a_list = ['a','b','c','hello'],为例作介绍:  string...
    99+
    2023-01-31
    五种 方法 python
  • Java实现List去重的五种方法详解
    目录通过HashSet去重(不保证顺序)通过HashSet去重(保证顺序)遍历后判断赋给另一个list集合去重(保证顺序)通过TreeSet去重(保证顺序)Java8中Stream流...
    99+
    2022-11-13
    Java List去重方法 Java List去重 Java去重 List 去重
  • python的list去除重复
    我直接上脚本:方法1:#!/usr/bin/env python n = [1,2,3,3,4,3,1,2,3,2,1,4,5,5,5,5,6,6,4,3,2,1,2,6,8,2] m = [] for x in n:     if x ...
    99+
    2023-01-31
    python list
  • 怎么使用python list去除重复项
    今天小编给大家分享一下怎么使用python list去除重复项的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们...
    99+
    2024-04-02
  • python移除重复值的方法是什么
    在Python中,有多种方法可以移除重复值。以下是其中几种常用的方法:1. 使用set()函数:将列表转换为集合(set),集合中的...
    99+
    2023-10-18
    python
  • python 模块重载的五种方法
    目录环境准备禁止重复导入重载模块方法一重载模块方法二重载模块方法三重载模块方法四重载模块方法五环境准备 新建一个 foo 文件夹,其下包含一个 bar.py 文件 $ ...
    99+
    2024-04-02
  • Java中Stream流去除List重复元素的方法
    本文实例为大家分享了Java中Stream流去除List重复元素的具体代码,供大家参考,具体内容如下 业务场景 在开发中我们常常需要过滤List中的重复对象,而重复的定义往往是根据单...
    99+
    2024-04-02
  • List去重的几种方法
    list去重 现在设有Integer类型的ArrayList,list=[0,1,1,3,3,4,5] 1.使用contains //使用contains List li...
    99+
    2023-10-04
    list java 数据结构
  • python怎么去除list中重复的数据
    可以使用set()函数来去除list中的重复数据。set()函数会自动去除重复的数据,然后再转换回list。以下是一个示例代码:```pythonmy_list = [1, 2, 3, 3, 4, 5, 5, 6]my_list = l...
    99+
    2023-08-11
    python list
  • Java【List】去重的 6种方法
    list集合去重 一、HashSet去重二、TreeSet去重三、LinkedHashSet去重四、迭代器去重五、Stream去重六、contains判断去重等等... 其它实现方法 ...
    99+
    2023-09-18
    java list
  • Python删除列表中重复元素的七种方法举例
    目录前言直接遍历列表删除通过遍历索引删除通过遍历创建的切片来删除原列表用新列表记录需要保留的元素通过索引倒着删除通过递归函数删除毫无疑问set()是最方便的总结前言 嗨嗨,大家晚上好...
    99+
    2023-05-14
    列表去重 python python怎么去除列表中重复项 python中删除列表中的重复内容
  • Python list列表删除元素的4种方法
    目录del:根据索引值删除元素 pop():根据索引值删除元素 remove():根据元素值进行删除 clear():删除列表所有元素 在 Python 列表中删除元素主要分为以下 ...
    99+
    2024-04-02
  • C++怎么移除有序链表中的重复项
    本文小编为大家详细介绍“C++怎么移除有序链表中的重复项”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++怎么移除有序链表中的重复项”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Remove Duplicat...
    99+
    2023-06-19
  • Python 字符串去除空格的五种方法
    在处理Python代码字符串的时候,我们常会遇到要去除空格的情况,所以就总结了多种方法供大家参考。 1、strip()方法 去除字符串开头或者结尾的空格 str = " Hel...
    99+
    2024-04-02
  • 汇总Java中List去重的6种方法
    目录前置知识无序集合有序集合有序和无序方法1:contains判断去重(有序)方法2:迭代器去重(无序)方法3:HashSet去重(无序)方法4:LinkedHashSet去重(有序...
    99+
    2024-04-02
  • python中list的四种查找方法
    Python中是有查找功能的,四种方式:in、not in、count、index,前两种方法是保留字,后两种方式是列表的方法。 下面以a_list = ['a','b','c','hello'],为例作介绍: ...
    99+
    2023-01-31
    四种 方法 python
  • Python list列表删除元素(4种方法)
    在 Python 列表中删除元素主要分为以下 3 种场景: 根据目标元素所在位置的索引进行删除,可以使用 del 关键字或者 pop() 方法; 根据元素本身的值进行删除,可使用列表(list类型)提供的 remo...
    99+
    2023-09-18
    python 开发语言 后端 Powered by 金山文档
  • python中list列表删除元素的四种方法实例
    目录在python列表中删除元素主要分为以下3种场景:del:根据索引值删除元素pop():根据索引值删除元素remove():根据元素值进行删除clear():删除所有元素补充: ...
    99+
    2024-04-02
  • 怎么从无序链表中移除重复项
    本篇内容主要讲解“怎么从无序链表中移除重复项”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么从无序链表中移除重复项”吧!顺序删除通过双重循环直接在链表上执行删...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作