前言

列表去重是写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列表去重的几种方法整理
# 遍历
# 转换成
# 中元
# 不能用
# 这一
# 让你
# 也会
# 还可以
# 让我们
# 也就
# 你要
# 有可能
# 是这样
# 这就是
# 说了
# 还不
# 不多
# 只需
# 那你
# 那我
相关文章:
免费制作小说封面的网站有哪些,怎么接网站批量的封面单?
如何快速搭建高效简练网站?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
网站制作的步骤包括,正确网址格式怎么写?
如何配置IIS站点权限与局域网访问?
,怎么在广州志愿者网站注册?
制作网站的公司有哪些,做一个公司网站要多少钱?
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
如何快速登录WAP自助建站平台?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?
网站企业制作流程,用什么语言做企业网站比较好?
建站主机数据库如何配置才能提升网站性能?
小型网站制作HTML,*游戏网站怎么搭建?
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
微信小程序 五星评分(包括半颗星评分)实例代码
宝塔面板如何快速创建新站点?
英语简历制作免费网站推荐,如何将简历翻译成英文?
小建面朝正北,A点实际方位是否存在偏差?
如何在万网ECS上快速搭建专属网站?
高端网站建设与定制开发一站式解决方案 中企动力
如何快速搭建高效WAP手机网站?
音乐网站服务器如何优化API响应速度?
网站制作免费,什么网站能看正片电影?
如何在景安服务器上快速搭建个人网站?
定制建站价位费用解析与套餐推荐全攻略
如何在云主机上快速搭建网站?
如何续费美橙建站之星域名及服务?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】
如何挑选优质建站一级代理提升网站排名?
高端企业智能建站程序:SEO优化与响应式模板定制开发
如何通过虚拟主机空间快速建站?
名字制作网站免费,所有小说网站的名字?
如何快速搭建虚拟主机网站?新手必看指南
建站VPS推荐:2025年高性能服务器配置指南
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
微信推文制作网站有哪些,怎么做微信推文,急?
如何快速建站并高效导出源代码?
韩国服务器如何优化跨境访问实现高效连接?
c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
h5在线制作网站电脑版下载,h5网页制作软件?
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
设计网站制作公司有哪些,制作网页教程?
建站之星备案是否影响网站上线时间?
网站制作软件免费下载安装,有哪些免费下载的软件网站?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
孙琪峥织梦建站教程如何优化数据库安全?
建站主机与虚拟主机有何区别?如何选择最优方案?
*请认真填写需求信息,我们会在24小时内与您取得联系。