在python中,对列表这样的数据结构进行过滤,提取自己需要的元素,组成新的列表,是很常见的操作,这就要自然而然的用到列表过滤了,而常用的过滤当然就是循环后通过if进行,但是这样子,显然就是代码的开支有些大。

python中,提供了一个列表过滤的方式来做到这样的方式 :

    [ mapping-expression for  element in  source-list if  filter-expression ]

直接来一段示例,就能很快明了:

def filterForLi(li):info = ">>>>>使用普通过滤列表<<<<<"print infoout_data = [element for element in li if not isinstance(element,int) and len(element)>5] #int类型没有长度,所以需要首先排除print out_data
# 定义一个列表
li = [1,2,3,4,5,"a","b","c","apple","banana","orange","juice"]
filterForLi(li)

代码中的:

[element for element in li if not isinstance(element,int) and len(element)>5]

这部分就是过滤了

单独拆分:

1、

element 

2、

for element in li

3、

if not isinstance(element,int) and len(element)>5

这样子看,就应该是很好懂了,就是for循环中,通过if对元素内容进行过滤处理,然后返回满足条件的元素,最终组装成新的列表

返回结果如下:

另外一种会用到的过滤,就是通过lambda函数进行,其实和这段列表过滤的原理一样,只是将if判断的部分通过lambda函数进行,完整的代码如下

# -*- coding:utf-8 -*-
# 列表过滤和使用lambda函数过滤
if __name__ == "__main__":info = """>>>>>用来演示普通方式过滤列表和使用lambda函数过滤<<<<<"""print info
# 使用普通列表过滤
def filterForLi(li):info = ">>>>>使用普通过滤列表<<<<<"print infoout_data = [element for element in li if not isinstance(element,int) and len(element)>5] #int类型没有长度,所以需要首先排除print out_data
# 使用lambda函数过滤
def filterByLambda(li):info = ">>>>>使用lambda函数进行列表信息过滤<<<<<"print info# 定义一个lambda函数:int类型没有长度,所以需要首先排除g = lambda x : not isinstance(x,int) and len(x)>5out_data = [element for element in li if g(element)]print out_data
# 定义一个列表
li = [1,2,3,4,5,"a","b","c","apple","banana","orange","juice"]
# 分别调用两个函数:结果应该一样才准确
# 普通过滤
filterForLi(li)
# lambda函数过滤
filterByLambda(li)

运行结果如下:

以上这些就是常用到的一些进行列表元素过滤的方法了

python列表过滤的方法相关推荐

  1. python列表添加元素、输出_python公开课|Python列表添加元素的方法可是python的基础之一,如果不会怎么行呢...

    [摘要]在这个科学技术高速发展的时代,越来越多的人都开始选择学习编程软件,那么首先被大家选择的编程软件就是python,也用在各行各业之中,并被大家所熟知,所以也有越来越多的python学习者关注py ...

  2. Python列表条件求和方法

    Python列表条件求和方法 list_data=[[1.0, '配件', '522422', '铝扣板用纽扣', '金色', '', 72.0, 'PC', ''], [2.0, '配件', '50 ...

  3. python列表的排序方法是_Python列表排序 reverse、sort、sorted 操作方法详解

    python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse() ...

  4. python——列表定义及方法

    1. 列表定义及格式 定义:列表是一个可修改的,元素以逗号分割,以中括号包围的有序序列.格式:变量名=[元素1,元素2,元素3,-] 2. 列表序列操作 由于列表是序列的一种,列表支持所有的我们对字符 ...

  5. Python列表切片及方法

    本文章除特殊例子外,所有例子以此列表为准: a = [1,2,3,4,5,6,7,8,9] 序列 顺序存放值的对象 列表 用 [ ] 来创建一个列表 a = [ ] 索引值 列表的第一个索引值为0,每 ...

  6. python 列表过滤方法 条件表达式

    1.使用filter和lambda函数 filter(fun, seq)函数对seq里的每个元素执行fun(),并返回值为true的元素放在一个iterator里 例如在一个列表里找出所有奇数可以这样 ...

  7. python列表的排序方法_pythonlist排序的两种方法及实例

    本文主要介绍了python list排序的两种方法及实例讲解.具有很好的参考价值,下面一起来看下吧 对List进行排序,Python提供了两个方法 方法1.用List的内建函数list.sort进行排 ...

  8. python列表去重的方法_Python列表中去重的多种方法

    怎么快速的对列表进行去重呢,去重之后原来的顺序会不会改变呢? 去重之后顺序会改变 set去重 列表去重改变原列表的顺序了l1 = [1,4,4,2,3,4,5,6,1] l2 = list(set(l ...

  9. python列表相加的方法:两个list [] 加法

    大家好,我是Lex 喜欢欺负超人那个Lex 擅长领域:python开发.网络安全渗透.Windows域控Exchange架构 1. 利用操作符+ +操作符 对象是 list a = [1,2,3] b ...

最新文章

  1. java vector search_java.util.Vector.retainAll()方法实例
  2. centos7 安装配置openstack-dashboard (官网openstack-juno版)
  3. 在java中如何实现声音,我如何在Java中播放声音?
  4. yum安装nginx的负载均衡详解
  5. python连接oracle视频教程_python怎么连接oracle
  6. 删除副本列表中的消失项目符号
  7. 浅谈物联网时代智能停车发展趋势
  8. mysql数据库开发常见问题及优化
  9. python能做什么-Python到底能做什么?它的优点在哪
  10. git push --set-upstream
  11. shell基础:输入输出重定向
  12. Nginx 凭啥并发数可以达到 3w?
  13. Linux工具之htop命令
  14. C语言初阶:进制,计算机的美丽语言
  15. 为什么说串行比并行速度快?
  16. Dns与httpDNS的区别
  17. 转载:ZedGraph使用帮助
  18. java编译时为什么总找不到文件,javac编译时找不到文件的问题和运行项目找不到指定类问题...
  19. 计算机蓝屏代码0x0000007b,蓝屏代码0x0000007b的解决办法
  20. 运行引擎需要d3d11兼容GPU,如何解决

热门文章

  1. 爱因互动王守崑:未来机器人的服务质量会显著高于人类
  2. 创业管理实战2021年秋(考试答案)
  3. 调取各大电商平台商品评论API
  4. Kolmogorov-Smirnov test 详细介绍
  5. CRC16算法是什么
  6. iOS7设置状态栏颜色
  7. 阿里云服务器安装云助手客户端
  8. zabbix模板关联群组
  9. 面向对象类和类之间的几种关系
  10. dedecms织梦搬家数据库导入失败