filter使用python3代码进行迭代元素的实例详解

我们通常说使用函数对列表进行筛选,有多少小伙伴能够理解筛选的原理呢?

今天小编为大家带来了新朋友filter函数,相较于以往能实现筛选功能的函数来说是复杂的,这也算是对于一些有难度函数学习的考验。我们会着重于探讨filter函数筛选后的返回值,对于返回值的迭代进行一些原理的分析。

filter用于过滤筛选可迭代对象中的元素,如果符合条件则返回对应的元素序列(类型为filter),filter接受两个参数,一个是函数用于筛选元素,返回值为True或Flase,另一个是可迭代对象。

filter用法

evens = filter(is_odd, range(-5, 10))
print(list(evens))

示例结果:

[2, 4, 6, 8]

filter函数的返回值是一个可迭代对象,这一点很关键,这也是为什么我说filter函数是高级语法的原因。

为什么不返回列表?如果返回的是列表,那么在filter函数执行过程中,就必须对列表里的每一个数据进行对2取模运算,这样很浪费空间,因此filter在实现时采用了迭代器技术,将计算延迟到对filter函数返回结果进行遍历时才进行。

到此这篇关于filter使用python3代码进行迭代元素的实例详解的文章就介绍到这了,更多相关filter如何使用python3代码进行迭代元素内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • filter使用python3代码进行迭代元素的实例详解

    我们通常说使用函数对列表进行筛选,有多少小伙伴能够理解筛选的原理呢? 今天小编为大家带来了新朋友filter函数,相较于以往能实现筛选功能的函数来说是复杂的,这也算是对于一些有难度函数学习的考验.我们会着重于探讨filter函数筛选后的返回值,对于返回值的迭代进行一些原理的分析. filter用于过滤筛选可迭代对象中的元素,如果符合条件则返回对应的元素序列(类型为filter),filter接受两个参数,一个是函数用于筛选元素,返回值为True或Flase,另一个是可迭代对象. filter用法

  • python3代码输出嵌套式对象实例详解

    我们都知道如果想让电脑运行更多的程序,就要增加它的配置才能带动.在之前的学习中,我们已经对函数的打印print有所了解,但是遇到更加复杂的对象,比如嵌套式的print的打印功能就不够用了. 有的小伙伴已经在寻找其他的函数,其实针对于这个问题,我们使用更高级的pprint就可以解决了,接下来用代码输出嵌套式对象给大家进行模拟. Python的默认print函数可以满足日常的输出任务,但如果要打印更大的.嵌套式的对象,那么使用默认的print函数打印出来的内容会很丑陋. 这个时候我们就需要pprin

  • Java集合删除元素ArrayList实例详解

    Java集合删除元素ArrayList实例详解 AbstractCollection集合类中有一个remove方法,该方法为了适配多种不同的集合,允许删除空的元素,看这部分代码的时候产生了疑问,为什么这里直接用it.remove()就直接删除了? public boolean remove(Object o) { Iterator<E> it = iterator(); if (o==null) { while (it.hasNext()) { if (it.next()==null) { i

  • 200行代码实现blockchain 区块链实例详解

    了解blockchain的概念很简单(区块链,交易链块):它是分布式的(即不是放置在同一台机器上,不同的网络设备上的)数据库支持主办记录日益增长的名单.但是,这也是容易混淆blockchain与我们试图帮他解决了目标 - 在人们心中的那一刻,这个词是相当强烈的交易,合同或智能cryptocurrency的概念有关. 只有在这里blockchain - 是不是一回事比特币,并理解链块的基本知识比它似乎更容易,尤其是在,它是基于源代码的情况下.在本文中,我们提出了建立与在JavaScript中200

  • python字典的元素访问实例详解

    说明 1.字典中没有下标的概念,使用key值访问字典中对应的value值.当访问的key值不存在时,代码会报错. 2.get('key'):直接将key值传入函数,当查询到相应的value值时,返回相应的值,当key值不存在时,返回None,代码不会出错. 3.get(key,数据):当查询相应的value值时,返回相应的值,当没有key值时,返回自定义的数据值. 实例 # 定义一个字典 dic = {'Name': '张三', 'Age': 20} # 使用 key 值访问元素 print(d

  • c++代码实现tea加密算法的实例详解

    通过c++来实现tea加密算法,最终编译成so文件,以JNI的方式提供给客户端调用,主要需要解决以下三个问题: 实现tea算法,这都有开源的代码可以实现: 解决padding问题: 密钥做一个混淆,防止编译生成的库文件方便的被逆向拿到: 对于tea的加密算法,有成熟的各语言代码可以借鉴,下面是C++的实现: static void tea_encrypt(uint32_t *v, uint32_t *k) { uint32_t v0 = v[0], v1 = v[1], sum = 0, i;

  • python处理列表的部分元素的实例详解

    1.处理列表的部分元素称之为切片,创建切片,可指定要使用的第一个元素和最后一个元素的索引. 2.这让Python创建一个始于第一个元素,终止于最后一个元素的切片,即复制整个列表. 实例 names = ['zhang_san','chen_cheng','li_hong','liu_li','chen_yu'] print(names[0:3]) print(names[0:-1]) print(names[:]) print(names[-1]) print(names[-3:]) 负数索引返

  • PHP5.5迭代生成器用法实例详解

    本文实例讲述了PHP5.5迭代生成器用法.分享给大家供大家参考,具体如下: PHP5.5引入了迭代生成器的概念,迭代的概念早就在PHP有了,但是迭代生成器是PHP的一个新特性,这跟python3中的迭代生成器类似,看看PHP5.5的迭代生成器如何定义. <?php function xrange($start, $end, $step = 1) { for ($i = $start; $i <= $end; $i += $step) { yield $i; } } foreach (xrang

  • jquery html添加元素/删除元素操作实例详解

    本文实例讲述了jquery html添加元素/删除元素操作.分享给大家供大家参考,具体如下: 添加元素 添加新的 HTML 内容 将学习用于添加新内容的四个 jQuery 方法: append() - 在被选元素的结尾插入内容 prepend() - 在被选元素的开头插入内容 after() - 在被选元素之后插入内容 before() - 在被选元素之前插入内容 append() 方法 append() 方法在被选元素的结尾插入内容(仍然该元素的内部). $("p").append(

  • 如何在js代码中消灭for循环实例详解

    前言 这篇文章基于我在公司内部分享会整理而成.欢迎探讨补充. 补充一:看来很多人没看完文章就评论了.我在文章末尾说了,是不写 for 循环,不是不用 for 循环.简单陈述不写 for 循环的理由:for 循环易读性差,而且鼓励写指令式代码和执行副作用.更多参考这篇文章 补充二:回应大家的一些反对意见.本来准备专门写文章回应的,但是没时间,就简短回复,直接扔链接了. 1.for 循环性能最好.回应:微观层面的代码性能优化,不是你应该关注的.我在文章中演示了,对百万级数据的操作,reduce 只比

随机推荐