列表去重、去除满足一定条件的元素
列表去重(保持原来的顺序)
from functools import reduce list1 = [1,4,3,3,4,2,3,4,5,6,1] # func = lambda x,y:x if y in x else x + [y] list2=reduce(lambda x,y:x if y in x else x + [y], [[], ] + list1) print(list2) print(list1)
reduce中都发生了什么?
答:
reduce(function, iterable[, initializer])
function -- 函数,有两个参数
iterable -- 可迭代对象
initializer -- 可选,初始参数
reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
案例解释:
reduce中有2个参数,
参数一为一个匿名函数:lambda x,y:x if y in x else x + [y]
参数二为一个可迭代的列表:[[], 1, 4, 3, 3, 4, 2, 3, 4, 5, 6, 1]
lambda函数的解释:[ [], a1, a2, a1, a4]
第一次:x为[],y为a1。如果y在x中已经出现了,那么返回x。否则返回x+[y],即为把y放到x中去。
第二次:x为[a1],即为上次返回的结果,y为a2。如果y在x中已经出现了,那么返回x。否则返回x+[y],即为把y放到x中去。
第三次:x为[a1, a2],即为上次返回的结果,y为a1。如果y在x中已经出现了,那么返回x。否则返回x+[y],即为把y放到x中去。
第四次:x为[a1, a2],即为上次返回的结果,y为a4。依据以上规则,最终返回[a1, a2, a4]。
reduce对同一个列表有a1,a2,...,an迭代使用的功能。
reduce()函数的解释:
reduce(function, iterable[, initializer])
function -- 函数,有两个参数
iterable -- 可迭代对象
initializer -- 可选,初始参数
返回函数计算结果。
举例说明:
>>>def add(x, y) : # 两数相加
... return x + y
...
>>> reduce(add, [1,2,3,4,5]) # 计算列表和:1+2+3+4+5
15
>>> reduce(lambda x, y: x+y, [1,2,3,4,5]) # 使用 lambda 匿名函数
15
reduce() 参考:
https://www.runoob.com/python/python-func-reduce.html
https://www.cnblogs.com/lincappu/p/8148851.html
其他方法:
https://www.cnblogs.com/zknublx/p/6042295.html
map()、filter()、reduce()
https://www.cnblogs.com/mxp-neu/articles/5316557.html
列表去除元素长度小于等于1的元素
a = ['what', '1', 'a', 'some', 'b', 'time'] a = [i for i in a if len(i) > 1] print(a)
输出
['what', 'some', 'time']
相关文章
- Python编程之列表操作实例详解【创建、使用、更新、删除】
- python中列表元素连接方法join用法实例
- Python-装饰器-案例-获取文件列表
- python实现提取jira bug列表
- python中列表元素连接方法join用法实例
- 一张图解析FastAdmin中的表格列表的功能[转]
- 将元素为多个列表的列表元素进行转置、去重处理
- spring boot:swagger3文档展示分页和分栏的列表数据(swagger 3.0.0 / spring boot 2.3.3)
- Python 比较两个列表list取出相同和不同的元素来
- Atitit hi dev eff topic by use dsl sql coll op 提升开发效率sql dsl查询内存集合列表 目录 1.1. Dsl api lib1 1.2. R
- Atitit data struts art 数据结构的艺术 数据结构之道 attilax著 目录 1. 分类1 1.1. 按照元素关系分(集合,列表,tree,map,图)1 1.2. 按
- NLP:利用count函数或正则表达式compile、findall、finditer实现匹配统计(包括模糊匹配的贪婪匹配、懒惰匹配)、对多个字符串组成的列表进行多个模糊关键词进行模糊匹配案例
- Python编程语言学习:列表与字典互转的几大方法集锦、从列表中按顺序循环抽走一个元素输出剩余元素之详细攻略
- Python:利用collections库实现统计单个字或单个字母的频率统计并进行降序输出、统计一个列表内重复元素并以字典形式输出
- ASP.NET Core微服务(六)——【redis命令详细列表1】
- Qt Quick 常用元素:ComboBox(下拉列表) 与 ProgressBar(进度条)
- python 字典 元组 集合 列表 字符串 字节数组 常用的方法总结
- python将列表中的每个元素进行一种处理:map()
- ul li列表元素浮动导致border没有底边解决办法
- Python for 循环每次取列表中指定个数元素
- C# 对sharepoint 列表的一些基本操作,包括添加/删除/查询/上传文件给sharepoint list添加数据
- 3行3列表格 table实现,div+css实现
- 第11讲:Python列表对象中元素修改操作
- 第10讲:Python列表对象查操作之通过切片获取列表中的元素