首页 > 编程语言 >python过滤器filter()及lambda表达式的应用

python过滤器filter()及lambda表达式的应用

时间:2023-07-10 14:33:41浏览次数:41  
标签:python pattern filter re 过滤 字符串 zliu lambda

一、filter()方法介绍:

filter() 是 Python 内置的一个函数,用于根据指定的条件对可迭代对象进行筛选,返回符合条件的元素。

filter() 函数的语法如下:

filter(function, iterable)

其中 function 是一个函数或可调用对象,表示用于判断每个元素是否符合条件的函数。iterable 则是一个可迭代对象,表示需要进行筛选的数据集合。

filter() 函数会遍历 iterable 中的每个元素,依次将它们传入 function 进行判断。如果 function 返回的结果为真(非零、非空、True),则该元素被保留到结果中;否则被过滤掉。

二、结合re模块及lambda表达式的应用:

pattern = "☠" +realname+ "☠"  # 限定边界 
           
filtered_tuples = list(filter(lambda string: re.search(pattern, string), filtered_tuples0))  

 

如实例所示,该表达是的目的是,从filtered_tuples0列表中过滤出匹配pattern 内容(即"☠" +realname2[1]+ "☠" )字符串,然后将过滤出的信息注入filtered_tuples 列表中。

需要注意的是,如果被筛选的目标里面的每一条内容不是字符串或类似字节对象的参数,执行会报错的。

这里为什么会使用re模块(re 模块是 Python 标准库中的正则表达式模块,用于处理字符串的模式匹配),是为了准确匹配pattern所代表的字符串。

为什么呢?——比如 ,过滤的内容集里面包含字符串“zliu”、“czliu”、“dzliu”,如果没有边界限制和re匹配,就会在过滤“zliu”的时候过滤出所有含有“zliu”的内容,包括“zliu”、“czliu”、“dzliu”,而不是只有目标内容“zliu”。

这里通过"☠" +realname+ "☠" 表达式把realname限定起来是因为我的数据中是通过"☠"符号链接的数据,可以左右有效的边界。如果是被过滤的集里面就只是字符串,那就用"\b"限定边界。即pattern = "\b" +realname+ "\b",当过滤条件为“zliu”时,就会把“zliu”当做一个整体,作为某一部分出现的时候将不再匹配(“mzliu”、“czliu”、“dzliu”)。

标签:python,pattern,filter,re,过滤,字符串,zliu,lambda
From: https://www.cnblogs.com/babashi9527/p/17541058.html

相关文章

  • 「学习笔记」Lambda 表达式
    Lambda表达式因数学中的\(\lambda\)演算得名,直接对应于其中的lambda抽象.Lambda表达式能够捕获作用域中的变量的无名函数对象,我们可以将其理解为一个匿名的内联函数,可以用来替换独立函数或者函数对象,从而使代码更可读.但是从本质上来讲,Lambda表达式只是一种语......
  • 使用多级蒙特卡洛方法加速电力系统风险分析充分性评估python源代码,文章对应代码,保证正
    使用多级蒙特卡洛方法加速电力系统风险分析充分性评估python源代码,文章对应代码,保证正确阐述了MLMC方法如何应用于电力系统风险分析,特别是系统充分性评估问题。确定了特别适合MLMC实现的通用模型模式,并引入了计算速度度量,以一种易于在工具、蒙特卡罗方法和风险度量之间进行比较的......
  • 当函数遇上图片,比如Filter
    Filter函数可以说是包揽了一切查找,嗯,够辛苦。有木有想过,如果Filter遇上图片,又是怎样的风景呢?就是这个样几滴……这里的图片可以是两种,一种是由Image函数生成的,另一种是放置在单元格中的图片。其实,这并不是Filter的独享,因为图片作为单元格对象,所以几乎可以说是所有函数,都能对其进行......
  • .NET写一个自己的Lambda表达式与表达式树
    LambdaExpression继承ExpressionExpression又继承LambdaExpressio所以,Expression与Expression的区别在于:泛型类以静态类型的方法标识了它是什么种类的表达式,也就是说,他确定了返回类型和参数。所以显然,TDelegate必须是一个委托类型。注意:并非所有的Lambda表达式都能转......
  • Python | os.makedirs函数的使用
    概述os.makedirs()方法用于递归创建目录。如果子目录创建失败或者已经存在,会抛出一个OSError的异常,Windows上Error183即为目录已经存在的异常错误。如果第一个参数path只有一级,则mkdir()函数相同。语法makedirs()方法语法格式如下:os.makedirs(path,mode=0o777)参......
  • Windows下安装python2和python3双版本及问题解决
    现在大家常用的桌面操作系统有:Windows、MacOS、ubuntu,其中MacOS和ubuntu上都会自带python。这里我们只介绍下Windows(我用的Win10)环境下的python2.x和python3.x的安装,以及python2.x与python3.x共存时的配置问题。本节内容python下载安装Python2.x安装Python3.x当前存......
  • abc065d <贪心+最小生成树> [lambda表达式]
    D-Built?//https://atcoder.jp/contests/abc065/tasks/arc076_b//贪心+最小生成树//关键在于意识到,连接x或y相邻的边代价最小,因而无需考虑全部的边,仅需考虑这些相邻边即可(贪心)//学习://1.lambda写法https://www.cnblogs.com/yaya12138/p/11815475.html//......
  • python笔记:第五章条件循环语句
    1.print和import1.1打印多个参数同时打印多个表达式,用逗号分隔print('age:',42)>age:13#注意两个表达式之间有空格不加空格的输出方式print('block'+'chain')>blockchain自定义分隔符print('L','M','C',sep='-')>L......
  • python学习巩固一(基础语法)
    大学四年毕业,对于计算机还是一头雾水,现在准备去读研了,导师要求我好好掌握python,突然回想到我学python的时候曾注册过博客园,哈哈哈,找回密码后发现我账号竟然有三个粉丝,某些阅读量还挺高的,感谢感谢。为了督促自己这次能认认真真再好好学习python,我又开始弄我的博客园了,现在从零开始,......
  • python基础
    1.函数1.1禁止函数修改列表列表是可以修改的,把列表作为参数传给函数,如果在函数中对列表进行了修改,那么这个列表就发生了改变。为了防止函数修改列表,我们可以使用切片表示法[:]创建列表的副本,将列表的副本作为函数参数deffunction_name(list_name[:]):#函数体......