Python list去重且保持原顺序不变的方法


Posted in Python onApril 03, 2021

背景

python 去重一顿操作猛如虎,set list 扒拉下去,就去重了,但是顺序就打乱了。如果对顺序没有需要的话,这样确实没有什么所谓。
但是如果需要保留顺序的话,就需要一点小小的改变。

code && demo

list 去重,顺序乱掉

# normal 写法
l1 = ['b','c','d','b','c','a','a']
l2 = list(set(l1))
print(l2)

# plus 写法
l1 = ['b','c','d','b','c','a','a']
l2 = {}.fromkeys(l1).keys()

去重后还是原 list 顺序

# normal 写法
l1 = ['b','c','d','b','c','a','a']
l2 = list(set(l1))
l2.sort(key=l1.index)

# plus 写法
l1 = ['b','c','d','b','c','a','a']
l2 = sorted(set(l1),key=l1.index)

写循环代码实现

# normal 写法
l1 = ['b','c','d','b','c','a','a']
l2 = []
for i in l1:
  if not i in l2:
    l2.append(i)
    
# plus 写法

l1 = ['b','c','d','b','c','a','a']
l2 = []
[l2.append(i) for i in l1 if not i in l2]

写 while 循环代码实现

L = [3, 1, 2, 1, 3, 4]
T = L[:]
for i in L:
  while T.count(i) > 1:
    del T[T.index(i)]
T.sort(key=L.index)

lambda 写法

备注:

  • ambda L,i: L if i in L else L + [i]    # 如果元素在列表中,那么返回列表本身,不在的话 L + [i]
  • [[],] + L # 等价于 [[], L],方便后面计算

总结

如果纠结空间复杂度的,用 python 干啥?
先谈能不能完成,再谈优化吧。

以上就是Python list去重且保持原顺序不变的方法的详细内容,更多关于Python list去重的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python translator使用实例
Sep 06 Python
python进阶教程之循环对象
Aug 30 Python
python通过imaplib模块读取gmail里邮件的方法
May 08 Python
详解Python的Twisted框架中reactor事件管理器的用法
May 25 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
Jun 26 Python
判断python字典中key是否存在的两种方法
Aug 10 Python
python TKinter获取文本框内容的方法
Oct 11 Python
Python制作exe文件简单流程
Jan 24 Python
Python3.5迭代器与生成器用法实例分析
Apr 30 Python
详解pycharm2020.1.1专业版安装指南(推荐)
Aug 07 Python
如何用python批量调整视频声音
Dec 22 Python
Python基础之pandas数据合并
Apr 27 Python
python自动统计zabbix系统监控覆盖率的示例代码
Apr 03 #Python
2021年pycharm的最新安装教程及基本使用图文详解
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
python 统计代码耗时的几种方法分享
python 遍历磁盘目录的三种方法
Apr 02 #Python
python 如何在 Matplotlib 中绘制垂直线
在Windows下安装配置CPU版的PyTorch的方法
You might like
判“新”函数:得到今天与明天的秒数
2006/10/09 PHP
Snoopy类使用小例子
2008/04/15 PHP
PHP命名空间(namespace)的使用基础及示例
2014/08/18 PHP
Yii分页用法实例详解
2014/12/04 PHP
php执行多个存储过程的方法【基于thinkPHP】
2016/11/08 PHP
2017年最新PHP经典面试题目汇总(上篇)
2017/03/17 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
PHP设计模式之PHP迭代器模式讲解
2019/03/22 PHP
基于PHP+Mysql简单实现了图书购物车系统的实例详解
2020/08/06 PHP
javascript(jquery)利用函数修改全局变量的代码
2009/11/02 Javascript
深入理解Javascript动态方法调用与参数修改的问题
2013/12/10 Javascript
Javascript遍历table中的元素示例代码
2014/07/08 Javascript
Javascript检查图片大小不要让大图片撑破页面
2014/11/04 Javascript
深入理解JavaScript内置函数
2016/06/03 Javascript
Bootstrap学习笔记之css组件(3)
2016/06/07 Javascript
使用AngularJS 跨站请求如何解决jsonp请求问题
2017/01/16 Javascript
javascript 中iframe高度自适应(同域)实例详解
2017/05/16 Javascript
浅谈React深度编程之受控组件与非受控组件
2017/12/26 Javascript
详解js类型判断
2018/05/22 Javascript
jQuery实现常见的隐藏与展示列表效果示例
2018/06/04 jQuery
vue 查看dist文件里的结构(多种方式)
2020/01/17 Javascript
Python中使用bidict模块双向字典结构的奇技淫巧
2016/07/12 Python
Python实现字符串格式化的方法小结
2017/02/20 Python
python实现的MySQL增删改查操作实例小结
2018/12/19 Python
学Python 3的理由和必要性
2019/11/19 Python
解决Python中报错TypeError: must be str, not bytes问题
2020/04/07 Python
Python实现Word表格转成Excel表格的示例代码
2020/04/16 Python
CSS3解析抖音LOGO制作的方法步骤
2019/04/11 HTML / CSS
波兰汽车配件网上商店:iParts.pl
2020/09/08 全球购物
小区门卫值班制度
2014/01/24 职场文书
《草原的早晨》教学反思
2014/04/08 职场文书
2014民事授权委托书范本
2014/09/29 职场文书
大学体育课感想
2015/08/10 职场文书
Python使用protobuf序列化和反序列化的实现
2021/05/19 Python
python 办公自动化——基于pyqt5和openpyxl统计符合要求的名单
2021/05/25 Python
javascript遍历对象的五种方式实例代码
2021/10/24 Javascript