iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >你应该知道的python列表去重方法
  • 239
分享到

你应该知道的python列表去重方法

你应该知道方法列表 2022-06-04 18:06:25 239人浏览 安东尼

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

摘要

前言 列表去重是写python脚本时常遇问题,因为不管源数据来自哪里,当我们转换成列表的方式时,有可能预期的结果不是我们最终的结果,最常见的就是列表中元素有重复,这时候第一件事我们就要做去重处理。 我们先来

前言

列表去重是写python脚本时常遇问题,因为不管源数据来自哪里,当我们转换成列表的方式时,有可能预期的结果不是我们最终的结果,最常见的就是列表中元素有重复,这时候第一件事我们就要做去重处理。

我们先来个最简单的方式,用python内置的数据类型set来实现。

假设我们的列表数据是这样的:


level_names = [
 u'Second Level',
 u'Second Level',
 u'Second Level',
 u'First Level',
 u'First Level'
]

因为集合的元素是不能重复的,所以将列表转换成集合时,会自动去掉重复的元素,这就是基本原理,代码如下:


>>> the_list = set(level_names)
>>> print(the_list)
set([u'Second Level', u'First Level'])

这种方式缺点是再转换成列表时无法保存之前的列表顺序,如果没这个要求,这种方式是最简答的, 也许有的小伙伴觉得好简单呀,这没什么技术含量吗,没错,所以一般面试题里让你列表去重一般会这么写:

请写出列表去重的方法(不能用set)

人家写明不能用set了,所以呢,这招有时候还不能用,那当然也难不倒我们,我们还有其他方法。

我们都知道列表可以遍历,能遍历问题也就简单了,我们再定义空列表,然后遍历有数据的列表,再遍历时加一个判断,如果在空列表里没有,就加进去,如果有了就丢掉,代码如下:


the_list = []
for level in level_names:
 if level not in the_list:
  the_list.append(level)
print(the_list)

大家觉得这种方式是不是还可以,但这种方式对付一般的小列表是没问题的,但如果遇到一个超级大列表,也会力不从心,因为在the_list列表变的非常大,在判断时候会影响效率,因为列表是按索引顺序去查找的,当数据量很大时会变慢。

也许你要问了,那我遇到大的列表咋办? 有更牛掰点的方法吗?当然有,让我们继续,既然在判断时用列表会影响效率,那我们就转换一个思路,我们用集合,那你可能要问了,那集合就快了?没错,因为set使用的hash函数查找值,虽然set无序,但位置是固定的,只需一次就可以查到特定元素是否存在,网上有人做了列表和set的元素查找对比,相同的数据条件下,用list耗时16分钟,用set耗时是52秒,这一对比看出效果了吧,别的不多说了,贴代码:


the_list = []
the_set = set()
for level in level_names:
 if level not in the_set:
  the_set.add(level)
  the_list.append(level)
print(the_list)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

--结束END--

本文标题: 你应该知道的python列表去重方法

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 你应该知道的python列表去重方法
    前言 列表去重是写Python脚本时常遇问题,因为不管源数据来自哪里,当我们转换成列表的方式时,有可能预期的结果不是我们最终的结果,最常见的就是列表中元素有重复,这时候第一件事我们就要做去重处理。 我们先来...
    99+
    2022-06-04
    你应该知道 方法 列表
  • Python列表去重的几种方法整理
    请定义函数,将列表[10, 1, 2, 20, 10, 3, 2, 1, 15, 20, 44, 56, 3, 2, 1]中的重复元素除去,写出至少3种方法。 方法一:利用集合去重 ...
    99+
    2022-11-11
  • Python中你应该知道的一些内置函数
    前言 python内置了一些非常巧妙而且强大的内置函数,对初学者来说,一般不怎么用到,我也是用了一段时间python之后才发现,哇还有这么好的函数,这个函数都是经典的而且经过严格测试的,可以一下子省了你原来...
    99+
    2022-06-04
    函数 你应该知道 Python
  • python列表去重的5种常见方法实例
    目录前言一、使用for循环实现列表去重二、使用列表推导式去重三、使用集合转换函数set()实现列表去重四、使用新建字典方式实现列表去重五、删除列表中存在重复的数据附:Python 二...
    99+
    2022-11-11
  • python中对列表的相关操作你知道吗
    目录1. 添加2. 删除3. 查找/修改4. 其他总结list1 = ['火腿肠', '面包', '牛奶', '可乐', '方便面'] 1. 添加 # append:在列表尾部添加元...
    99+
    2022-11-13
  • Python中字符串和列表去重方法总结
    目录字符串去重1、直接遍历字符串的方式2、遍历去重的另一种方式3、将字符串转换成列表的方式(list sort)4、根据字符串下标,判断子集5、使用 ', '.joi...
    99+
    2023-05-15
    Python字符串去重 Python列表去重 Python去重
  • Python实现列表拼接和去重的方法有哪些
    本篇内容主要讲解“Python实现列表拼接和去重的方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python实现列表拼接和去重的方法有哪些”吧!目录列表拼接三种方式方式一:简简单单的“...
    99+
    2023-06-20
  • Laravel 框架与 Python 索引:你应该知道的面试问题。
    在互联网时代,软件开发领域的新技术层出不穷,各种开发语言与框架层出不穷。为了在这个竞争激烈的行业中脱颖而出,软件开发者必须保持学习和更新自己的技能。在软件工程师的面试中,常常会涉及到 Laravel 框架和 Python 索引的问题。本篇...
    99+
    2023-10-31
    索引 面试 laravel
  • 字符串常量的表示方法你知道吗?
    你知道字符串常量可以用什么方式表示吗?在计算机编程中,字符串是一种常用的数据类型,用于表示文本序列。在许多编程语言中,字符串常量可以用不同的方式进行表示。接下来,我将给出一些常见的方式,并附上代码示例。使用双引号("")表示这是最常见的方式...
    99+
    2023-12-27
    字符串常量 字符表示法
  • Python定制类你不知道的魔术方法
    目录Python中的魔法方法1.__str__2.__iter__3.__getitem__4.__getattr__5.__call__Python中的魔法方法 方法名说明__st...
    99+
    2022-11-11
  • Python对list列表结构中的值进行去重的方法总结
    今天遇到一个问题,在同事随意的提示下,用了 itertools.groupby 这个函数。不过这个东西最终还是没用上。 问题就是对一个list中的新闻id进行去重,去重之后要保证顺序不变。 直观方法 最简单...
    99+
    2022-06-04
    结构 方法 列表
  • Python实现列表拼接和去重的三种方式
    目录列表拼接三种方式 方式一:简简单单的“+” 方法二:切片赋值 方式三:列表自带的extend() 列表去重的三种方式 利用集合set的特性 利用字典key的不可重复属性 利用in...
    99+
    2022-11-12
  • Java8利用Stream实现列表去重的方法详解
    目录一. Stream 的distinct()方法1.1 对于 String 列表的去重1.2 对于实体类列表的去重二. 根据 List<Object> 中 Object...
    99+
    2022-11-13
  • 织梦dedecms将列表页重复的第一页去除的方法
    本文实例讲述了织梦dedecms将列表页重复的第一页去除的方法。分享给大家供大家参考。具体分析如下: 织梦程序的文章列表页首页和列表页第一页是一样的,程序是直接把列表页第一页复制成首页的,这样就会出现两个相同的页面,我们...
    99+
    2022-06-12
    织梦 dedecms 列表页 重复的 第一页 去除 方法
  • Python列表的应用方法有哪些
    今天小编给大家分享一下Python列表的应用方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Python 集合(数组...
    99+
    2023-07-06
  • load bash 响应的 Python 解决方案:你需要知道的一切。
    在现代计算机系统中,Bash 是一种流行的命令行 shell。但是,Bash 有时会出现性能瓶颈和稳定性问题,这就需要一个更好的解决方案。Python 语言是另一种广泛使用的编程语言,它具有可移植性、灵活性和易于学习的特点。在这篇文章中,我...
    99+
    2023-11-10
    响应 load bash
  • Windows函数在ASP并发编程中的应用方法,你知道吗?
    ASP是一种用于构建Web应用程序的开发平台,它的主要优点是易于学习和使用。但在处理大量并发请求时,ASP的性能会受到很大影响。在这种情况下,使用Windows函数可以提高ASP的性能和并发处理能力。 本文将介绍几个在ASP并发编程中使用...
    99+
    2023-09-01
    并发 函数 windows
  • 一文带你了解Python列表生成式应用的八重境界
    目录1. 引言2. Level1: 基础用法3. Level2: 加入条件语句4. Level3: 加入 enumerate()5. Level4: 加入 zip()6. Level...
    99+
    2022-11-11
  • python删除列表重复元素的方法是什么
    可以通过以下两种方法删除列表中的重复元素:1. 使用set()函数:将列表转换为集合,集合中的元素不会重复,然后再将集合转换回列表。示例代码如下:```pythonmy_list = [1, 2, 3, 3, 4, 5, 5, 6]ne...
    99+
    2023-08-11
    python
  • Python删除列表中重复元素的方法有哪些
    这篇文章主要介绍了Python删除列表中重复元素的方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python删除列表中重复元素的方法有哪些文章都会有所收获,下面我们一起来看看吧。直接遍历列表删除l1&...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作