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 相关文章推荐
windows上安装Anaconda和python的教程详解
Mar 28 Python
浅谈python中列表、字符串、字典的常用操作
Sep 19 Python
Python编程之gui程序实现简单文件浏览器代码
Dec 08 Python
django query模块
Apr 20 Python
Python增强赋值和共享引用注意事项小结
May 28 Python
python可视化篇之流式数据监控的实现
Aug 07 Python
如何在mac环境中用python处理protobuf
Dec 25 Python
opencv之为图像添加边界的方法示例
Dec 26 Python
Python图像处理库PIL中图像格式转换的实现
Feb 26 Python
Python如何使用OS模块调用cmd
Feb 27 Python
Python selenium实现断言3种方法解析
Sep 08 Python
Python实现Hash算法
Mar 18 Python
python自动统计zabbix系统监控覆盖率的示例代码
Apr 03 #Python
2021年pycharm的最新安装教程及基本使用图文详解
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
python 统计代码耗时的几种方法分享
python 遍历磁盘目录的三种方法
Apr 02 #Python
python 如何在 Matplotlib 中绘制垂直线
在Windows下安装配置CPU版的PyTorch的方法
You might like
PHP详解ASCII码对照表与字符转换
2011/12/05 PHP
ThinkPHP使用心得分享-分页类Page的用法
2014/05/15 PHP
微信公众号判断用户是否已关注php代码解析
2016/06/24 PHP
PHP中set_include_path()函数相关用法分析
2016/07/18 PHP
Laravel中为什么不使用blpop取队列详析
2018/08/01 PHP
js树形控件脚本代码
2008/07/24 Javascript
模仿JQuery sortable效果 代码有错但值得看看
2009/11/05 Javascript
JavaScript中使用正则匹配多条,且获取每条中的分组数据
2010/11/30 Javascript
javascript获取checkbox复选框获取选中的选项
2014/08/12 Javascript
js中this的用法实例分析
2015/01/10 Javascript
jQuery+CSS3实现树叶飘落特效
2015/02/01 Javascript
javascript制作幻灯片(360度全景图片)
2015/07/28 Javascript
BootStrap的JS插件之轮播效果案例详解
2016/05/16 Javascript
浅谈Vue.js
2017/03/02 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
2020/06/19 Javascript
详解微信第三方小程序代开发
2017/06/23 Javascript
使用 Node.js 模拟滑动拼图验证码操作的示例代码
2017/11/02 Javascript
详解微信UnionID作用
2019/05/15 Javascript
个人小程序接入支付解决方案
2019/05/23 Javascript
vue用BMap百度地图实现即时搜索功能
2019/09/26 Javascript
keep-alive保持组件状态的方法
2020/12/02 Javascript
Python高效编程技巧
2013/01/07 Python
Python常用的爬虫技巧总结
2016/03/28 Python
Python利用字典将两个通讯录文本合并为一个文本实例
2018/01/16 Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
2019/06/27 Python
pytorch forward两个参数实例
2020/01/17 Python
anaconda安装pytorch1.7.1和torchvision0.8.2的方法(亲测可用)
2021/02/01 Python
Unix里面如何在后台运行程序
2016/10/14 面试题
开水果连锁店创业计划书
2013/12/29 职场文书
初中优秀班集体申报材料
2014/05/01 职场文书
售房协议书
2014/08/19 职场文书
学校教师师德师风承诺书
2015/04/28 职场文书
2016新年年会主持词
2015/07/06 职场文书
2015年圣诞节寄语
2015/08/17 职场文书
Kubernetes控制节点的部署
2022/04/01 Servers
Mysql使用全文索引(FullText index)的实例代码
2022/04/03 MySQL