博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 中对list去重
阅读量:4677 次
发布时间:2019-06-09

本文共 677 字,大约阅读时间需要 2 分钟。

本文去重的前提是要保证顺序不变,本文给出了多种实现方法,需要的朋友可以参考下

1、直观方法

最简单的思路就是:

ids = [1,2,3,3,4,2,3,4,5,6,1]news_ids = []for id in ids:    if id not in news_ids:        news_ids.append(id)print news_ids

2、用set

ids = [1,4,3,3,4,2,3,4,5,6,1]ids = list(set(ids))

这样的结果是没有保持原来的顺序

ids = [1,4,3,3,4,2,3,4,5,6,1]news_ids = list(set(ids))news_ids.sort(ids.index)

3、使用itertools.grouby

ids = [1,4,3,3,4,2,3,4,5,6,1]ids.sort()it = itertools.groupby(ids)for k, g in it:    print k

关于itertools.groupby的原理可以看这里:

4、用reduce

其中的 lambda x,y:x if y in x else x + [y] 等价于 lambda x,y: y in x and x or x+[y] 。

 

思路其实就是先把ids变为[[], 1,4,3,......] ,然后在利用reduce的特性。reduce解释参看这里:

转载于:https://www.cnblogs.com/yun1108/p/8967126.html

你可能感兴趣的文章
非空 默认 男 mysql_MySQL进阶13--常见六大约束: 非空/默认/主键/唯一约束/检查约束/外键约束--表级约束 / 列级约束...
查看>>
mysql错误修改数据_mysql数据修改问题
查看>>
navicat忘记mysql密码_navicat连接My SQL时忘记root密码处理方法
查看>>
mysql 左连接 左外连接吗_什么是左外连接?左外连接在工作表查询中的应用
查看>>
python sum函数导入list_python sum函数iterable参数为二维list,start参数为“[]”该如何理解...
查看>>
docker 删除多余镜像_多余Basedisk删除和vDisk镜像反转技术简介
查看>>
mysqlin会使用索引吗_被面试官虐了,索引为何使用B+树,你知道吗
查看>>
mysql8单节点500m_Kubernetes 部署 Mysql 8.0 数据库(单节点)
查看>>
mysql数据工厂生产_MySQL超时与天蓝色数据工厂副本
查看>>
python缩进可以用在任何语句之后_每天一道Python选择题--python缩进
查看>>
mysql查询左边大于左边_MySQL WHERE 子句
查看>>
java 获取颜色_java关于照片属性的获取,颜色模式
查看>>
session丢失原因 java_session没有过期,其保存的数据无故丢失的原因
查看>>
java pkcs 11 write_java pkcs#11读取证书加解密(初学-分享)
查看>>
tranisant java_java tranisant
查看>>
java ibatis 存储过程_ibatis 调用存储过程
查看>>
java中的softreference_Java语言中内存优化的SoftReference 和 WeakReference的对比分析
查看>>
java提供了丰富的类库_Java优势有哪些?
查看>>
java 过滤器权限控制_JAVA过滤器,实现登陆权限限制
查看>>
设计模式java 模板模式_java设计模式--模板方法模式
查看>>