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算法学习之桶排序算法实例(分块排序)
Dec 18 Python
图文详解WinPE下安装Python
May 17 Python
20招让你的Python飞起来!
Sep 27 Python
python爬虫 爬取58同城上所有城市的租房信息详解
Jul 30 Python
Python列表元素常见操作简单示例
Oct 25 Python
基于Python实现人脸自动戴口罩系统
Feb 06 Python
Python字典深浅拷贝与循环方式方法详解
Feb 09 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
May 09 Python
matlab、python中矩阵的互相导入导出方式
Jun 01 Python
python 用Matplotlib作图中有多个Y轴
Nov 28 Python
Python3中的tuple函数知识点讲解
Jan 03 Python
python基础之文件处理知识总结
May 23 Python
python自动统计zabbix系统监控覆盖率的示例代码
Apr 03 #Python
2021年pycharm的最新安装教程及基本使用图文详解
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
python 统计代码耗时的几种方法分享
python 遍历磁盘目录的三种方法
Apr 02 #Python
python 如何在 Matplotlib 中绘制垂直线
在Windows下安装配置CPU版的PyTorch的方法
You might like
解析thinkphp import 文件内容变量失效的问题
2013/06/20 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
Javascript里使用Dom操作Xml
2006/09/20 Javascript
Javascript 获取LI里的内容
2008/12/17 Javascript
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
2009/05/21 Javascript
验证javascript中Object和Function的关系的三段简单代码
2010/06/27 Javascript
js实现在文本框光标处添加字符的方法介绍
2012/11/24 Javascript
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
2015/08/06 Javascript
JavaScript鼠标特效大全
2016/09/13 Javascript
JavaScript九九乘法口诀表的简单实现
2016/10/04 Javascript
微信小程序 登录实例详解
2017/01/16 Javascript
jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】
2017/03/23 jQuery
javascript 中的try catch应用总结
2017/04/01 Javascript
jQuery实现下拉菜单动态添加数据点击滑出收起其他功能
2018/06/14 jQuery
详解vue中组件参数
2018/07/09 Javascript
详解处理bootstrap4不支持远程静态框问题
2018/07/20 Javascript
详解IOS微信上Vue单页面应用JSSDK签名失败解决方案
2018/11/14 Javascript
微信小程序实现点击效果
2019/06/21 Javascript
关于微信小程序map组件z-index的层级问题分析
2019/07/09 Javascript
利用webpack理解CommonJS和ES Modules的差异区别
2020/06/16 Javascript
在Python程序中操作文件之isatty()方法的使用教程
2015/05/24 Python
Python基于identicon库创建类似Github上用的头像功能
2017/09/25 Python
Python爬虫爬取Bilibili弹幕过程解析
2019/10/10 Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
2020/07/20 Python
Pycharm 解决自动格式化冲突的设置操作
2021/01/15 Python
日本著名的平价时尚女性购物网站:Fifth
2016/08/24 全球购物
俄罗斯在线服装店:STOLNIK
2021/03/07 全球购物
经理职责范文
2013/11/08 职场文书
2014年民政局关于保密工作整改措施
2014/09/19 职场文书
个人对照检查剖析材料
2014/10/13 职场文书
工作检讨书怎么写
2015/01/23 职场文书
开学典礼观后感
2015/06/15 职场文书
2015年小学财务工作总结
2015/07/20 职场文书
劳动模范获奖感言
2015/07/31 职场文书
2019生态环境保护倡议书!
2019/07/03 职场文书
解决Tkinter中button按钮未按却主动执行command函数的问题
2021/05/23 Python