你应该知道的python列表去重方法
发布时间 - 2026-01-10 22:34:04 点击率:次前言

列表去重是写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)
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
# python
# list
# 列表去重
# 对象列表去重
# python3
# python列表去重的5种常见方法实例
# Python列表去重复项的N种方法(实例代码)
# Python 列表去重去除空字符的例子
# 对python列表里的字典元素去重方法详解
# Python对列表去重的多种方法(四种方法)
# python列表去重的二种方法
# Python列表去重的几种方法整理
# 遍历
# 转换成
# 中元
# 不能用
# 这一
# 让你
# 也会
# 还可以
# 让我们
# 也就
# 你要
# 有可能
# 是这样
# 这就是
# 说了
# 还不
# 不多
# 只需
# 那你
# 那我
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
微信小程序 input输入框控件详解及实例(多种示例)
Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
Laravel如何创建自定义Facades?(详细步骤)
Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
制作企业网站建设方案,怎样建设一个公司网站?
如何挑选高效建站主机与优质域名?
Android okhttputils现在进度显示实例代码
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
如何在云主机上快速搭建多站点网站?
Laravel怎么使用Intervention Image库处理图片上传和缩放
Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
node.js报错:Cannot find module 'ejs'的解决办法
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
php 三元运算符实例详细介绍
北京网站制作公司哪家好一点,北京租房网站有哪些?
如何快速打造个性化非模板自助建站?
详解jQuery中基本的动画方法
网站建设整体流程解析,建站其实很容易!
微信小程序 canvas开发实例及注意事项
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
制作旅游网站html,怎样注册旅游网站?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives
如何在万网自助建站中设置域名及备案?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何快速上传建站程序避免常见错误?
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址
手机网站制作与建设方案,手机网站如何建设?
如何在服务器上配置二级域名建站?
如何快速搭建高效可靠的建站解决方案?
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
怎么用AI帮你为初创公司进行市场定位分析?
Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】
教你用AI润色文章,让你的文字表达更专业
长沙企业网站制作哪家好,长沙水业集团官方网站?
Android仿QQ列表左滑删除操作
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?

