Python 高阶函数

简介:

1.函数本身也可以赋值给变量,即:变量可以指向函数。函数名其实就是指向函数的变量!

wKiom1loo-3htg2zAABIPnuFOsg743.png

 2.变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数

wKiom1lopC2TVKDVAAAqf3lNqM4782.png

  3.map() 函数接收两个参数,一个是函数,一个是序列, map 将传入的函数依次作用到序列的每个元素,并把结果作为新的 list 返回

wKioL1lopGiCbHiOAAAgj6s_QaM636.png

  4.reduce 函数把一个函数作序用在一个列[x1, x2, x3...]上,这个函数必须接收两个参数,reduce 把结果继续和序列的下一个元素做累积计算。

wKioL1lopNGxVYDPAAAcunpVJIU373.png

  

 5.filter() 也接收一个函数和一个序列。和 map() 不同的时,filter() 把传入的函数依次作用于每个元素,然后根据返回值是 True还是 False 决定保留还是丢弃该元素。

wKiom1lopUHQXz3HAAAfsRQ1wu0954.png  6.python内置的 sorted() 函数就可以对 list 进行从小到大排序

wKiom1lopZ7THTMlAAAWON2TPdg179.png

  sorted倒序排列

wKioL1loph7zpmw9AAAsYGDwPUE995.png  7. *匿名函数。当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。关键字 lambda 表示匿名函数,冒号前面的 表示函数参数。

wKiom1loymSguePEAAAUEo-9hEw117.png

     *匿名函数有只能有一个表达式,不用写 return ,返回值就是该表达式的结果。

     *因为匿名函数没有名字,不必担心函数名冲突。 匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数。

wKiom1loyzyQZ2-qAAATcVt-Jhs283.png

     *也可以把匿名函数作为返回值返回

wKioL1loy4_THc3-AAAvSU8Smb4629.png

   8. 装饰器就是用来装饰函数。

      想要增强原有函数的功能;

      但不希望修改now()函数的定义;

      在代码运行期间动态增加功能的方式

wKioL1lozB-T4KGPAABrz1fMWyU433.png


 .迭代


  *可以通过for循环来遍历这个列表或者元组,这种遍历为迭代

  *只要是可迭代对象,无论有无下标,都可迭代

wKioL1lnZRGhyPEJAABDQ9TsetY688.png  

  *判断一个对象是否是可迭代对象,有collections模块的Iterable判断

wKiom1lnZXfQo5nvAABh7mhlSU0756.png

   *枚举方法emumerate,把列表变成索引-元素对

wKioL1lnZeng4huSAAAfs_wyFTQ141.png          *两个变量的迭代显示

wKioL1lnZjrzzwy_AAAnqjBvaRo036.png

  



  .列表生成式


   *Python内置用来创建列表的生成式

wKiom1lnZqyA2Y2fAAAaz5vt7Pw557.png


  .生成器


  *后续的元素,这样就不必创建完整的列表,从而节省大量的空间,在   Python中,这种一边循   环一边计算的机制,称为生成器。

    *创建生成器,把一个列表生成式的[]改为()

    *读取方法个g.next(),for循环

wKioL1lnZ92jXtleAABL7WnP7j0533.png    *斐波拉切函数,将print b 改为 yield b, 函数顺序执行,遇到return或最后一行函数语句就返回,生成器函数每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回yield语句处继续执行。

wKioL1lnaXngey13AABrFaMQxGk398.png

本文转自  夏梨巴人  51CTO博客,原文链接:http://blog.51cto.com/12774035/1947727

相关文章
|
人工智能 安全 区块链
零知识证明:隐私保护的新前沿
【6月更文挑战第13天】零知识证明是种密码学技术,允许证明者向验证者证明陈述的真实性而不透露任何信息。这种技术基于数学难题,应用于隐私保护身份验证、区块链交易和敏感数据共享,保护用户隐私的同时确保安全性。尽管面临计算复杂度高和安全验证等挑战,零知识证明有望与区块链、AI等技术结合,为隐私保护领域带来创新突破。
|
XML JSON Java
Spring Boot 返回 XML 数据,一分钟搞定!
Spring核心技术 67 篇文章13 订阅 订阅专栏 Spring Boot 返回 XML 数据,前提必须已经搭建了 Spring Boot 项目,所以这一块代码就不贴了,可以点击查看之前分享的 Spring Boot 返回 JSON 数据,一分钟搞定!。
Spring Boot 返回 XML 数据,一分钟搞定!
|
11月前
|
存储 安全 Java
面试高频:Synchronized 原理,建议收藏备用 !
本文详解Synchronized原理,包括其作用、使用方式、底层实现及锁升级机制。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
面试高频:Synchronized 原理,建议收藏备用 !
|
12月前
|
传感器 人工智能 安全
智能窗户:自动调节光线与温度的玻璃
【10月更文挑战第20天】智能窗户通过内置传感器和控制系统,自动调节光线与温度,提升家居舒适度并实现节能减排。本文探讨其基本原理、技术创新、实际应用及未来发展趋势,展示这一高科技产品如何改变我们的生活方式。
|
监控 Android开发 iOS开发
深入探索安卓与iOS的系统架构差异:理解两大移动平台的技术根基在移动技术日新月异的今天,安卓和iOS作为市场上最为流行的两个操作系统,各自拥有独特的技术特性和庞大的用户基础。本文将深入探讨这两个平台的系统架构差异,揭示它们如何支撑起各自的生态系统,并影响着全球数亿用户的使用体验。
本文通过对比分析安卓和iOS的系统架构,揭示了这两个平台在设计理念、安全性、用户体验和技术生态上的根本区别。不同于常规的技术综述,本文以深入浅出的方式,带领读者理解这些差异是如何影响应用开发、用户选择和市场趋势的。通过梳理历史脉络和未来展望,本文旨在为开发者、用户以及行业分析师提供有价值的见解,帮助大家更好地把握移动技术发展的脉络。
715 6
|
12月前
|
存储 数据采集 分布式计算
大数据技术:开启智能时代的新引擎
【10月更文挑战第5天】大数据技术:开启智能时代的新引擎
|
Kubernetes 监控 容灾
ACK One舰队管理:企业级多集群管理解决方案
ACK One舰队管理是阿里云为您提供的强大的多集群管理方案,功能众多:GitOps应用分发、多集群网关、多集群Service、全局可观测、服务网格、统一权限管理等,方便您轻松应对混合云、多集群、容灾等场景的问题,简化多集群管理。
|
机器学习/深度学习 人工智能 算法
计算机视觉:目标检测算法综述
【7月更文挑战第13天】目标检测作为计算机视觉领域的重要研究方向,近年来在深度学习技术的推动下取得了显著进展。然而,面对复杂多变的实际应用场景,仍需不断研究和探索更加高效、鲁棒的目标检测算法。随着技术的不断发展和应用场景的不断拓展,相信目标检测算法将在更多领域发挥重要作用。
|
机器学习/深度学习 人工智能 自然语言处理
AI写作系统介绍
AI写作系统介绍
473 1
|
数据安全/隐私保护
注册Github账号详细过程
注册GitHub账号前,请备妥有效电子邮件地址以接收验证信,设定独特的用户名(仅含字母、数字或单连字符,不以连字符起始或结束),并创建具有一定复杂度的密码。接着,访问GitHub官网(`https://github.com/`),点击右上角的“Sign up”进入注册页面。在此页面填写用户名、电子邮箱与密码,选择是否接收产品更新及公告,通过人机验证后提交。最后,通过注册邮箱内的验证链接完成验证,即可启用您的GitHub账号。
1066 0