iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python小世界:匿名函数、高阶函数、
  • 556
分享到

Python小世界:匿名函数、高阶函数、

函数高阶世界 2023-01-31 00:01:10 556人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

木子本人搞起python已有多年,一直觉得什么都会,但是有时候实操起来,才觉得很多底层基础的知识都没有彻底的灵活掌握。 另外,网上关于Python基础知识的各种普及已有太多太多。 附上相关大神的技术栈: python3官方文档 Pyt

木子本人搞起python已有多年,一直觉得什么都会,但是有时候实操起来,才觉得很多底层基础的知识都没有彻底的灵活掌握。
另外,网上关于Python基础知识的各种普及已有太多太多。
附上相关大神的技术栈:

本人的写作水平有限,肯定比不上各种大佬的技术文章。博客只是对于自身知识的总结,提炼,当然如果能够帮助到各位看客,木子本人也非常高兴。


闲话不多说,本篇博客,主要针对Python的

匿名函数 lambda

高阶函数 map reduce filter

推导式 list set dict

三个方面来汇总。


匿名函数

当我们在传入函数时,有些时候,不需要显式地定义函数,那么此时匿名函数就灰常方便了。

Python官方文档--lambda

示例:
lambda a, b: a + b实际上就是下面代码的简写

def func(a, b):
    return a + b

对于匿名函数而言,不用写return返回值就是该表达式的结果
因为没有函数名字,不必担心函数名的冲突,此外,匿名函数也是一个函数对象,可以把匿名函数赋值给一个变量,再利用变量来调用该函数:


>>> f = lambda x: x * x
>>> f
<function <lambda> at 0x10453D7d0>
>>> f(6)
36

那么在一些简单的情况下,尽情的使用匿名函数吧。


高阶函数

何为高阶函数?

能接受函数做参数的函数

因Python中一切皆对象,变量名可以指向函数,而函数的参数可以接收变量,那么一个函数就可以接收另外一个函数作为参数。这就是传说中的高阶函数

map()

老规矩,官方文档走一波:

Python官方文档--map()

针对map(function, iterable, ...)函数,可结合lambda使用,示例如下:

>>> list(map(lambda x:x*x, [1,2,3,4,5]))
>>> [1, 4, 9, 16, 25]

注:Python3中,需要使用list()将map函数返回值转化为列表,若无list(),则结果为:


>>>  map(lambda x:x*x, [1,2,3,4,5])
>>> <map at 0x20b225167f0>

此外,map()函数不改变原有的 list,而是返回一个新的 list

reduce()

为便于掌握,对比,在总结完map()函数后,我们来看下reduce()函数。

Python官方文档--reduce()

那么从官方文档的介绍来看:

reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。

示例如下:

from functools import reduce

>>> reduce(lambda x, y: x + y, [1, 2, 3, 4, 5])

对结果演示即:((((1+2)+3)+4)+5) = 15
注:

reduce()函数可接收第三个参数,作为函数的起始值

filter()

filter()函数顾名思义,进行过滤判断。

Python官方文档--filter()

对于filter()函数来说,其接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False。

示例:过滤出1~100中平方根是整数的数:

import math

def func(x):
    r = int(math.sqrt(x))   # math.sqrt()计算平方根
    if r * r == x:
        return x

>>> list(filter(func, range(1, 101)))
>>> [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

那么从该示例中,我们能够得出结论:
filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。


推导式

推导式在日常工作中是比较好的装逼利器,对于列表,字典,集合的操作,很多时候一行代码即可解决,如若没有,那说明内力还不够深厚,嘎嘎嘎。。。。
对于推导式而言,我们就从

列表推导式

字典推导式

集合推导式

来总结,当然也就这三种。。。

列表推导式

示例:

from random import randint

>>> [randint(1, 10) for _ in range(20)]
>>> [8, 2, 7, 9, 7, 3, 10, 10, 2, 10, 5, 9, 4, 7, 9, 2, 10, 6, 10, 7]

字典推导式

示例:

>>> {x: x * x for x in range(10) if x % 3 == 0}
>>> {0: 0, 3: 9, 6: 36, 9: 81}

集合推导式

鉴于集合具有去重效果,那么我们创建示例,来和列表推导式对比:

from random import randint

>>> {randint(1, 10) for _ in range(20)}
>>> {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

很神奇有木有,目前写的只是最基本的推导式写法,在实际的工作中,可以添加各种判断,随意灵活运用。

总结

本篇博客侧重于实际工作中代码的简化,重构。若能结合实际工作需求,灵活运用,则能大大简化代码,也方便他人阅读,久而久之,自己的水平也逐渐提高。
起止一个爽字了得!!!
江湖有缘,下期再见!

--结束END--

本文标题: Python小世界:匿名函数、高阶函数、

本文链接: https://www.lsjlt.com/news/182476.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python小世界:匿名函数、高阶函数、
    木子本人搞起Python已有多年,一直觉得什么都会,但是有时候实操起来,才觉得很多底层基础的知识都没有彻底的灵活掌握。 另外,网上关于Python基础知识的各种普及已有太多太多。 附上相关大神的技术栈: Python3官方文档 Pyt...
    99+
    2023-01-31
    函数 高阶 世界
  • python之高阶函数和匿名函数
    map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。 1 def func(x): 2 return x*x 3 4 r = ma...
    99+
    2023-01-30
    函数 高阶 python
  • Python技巧匿名函数、回调函数和高阶函数
    目录1、定义匿名或内联函数 2、在匿名函数中绑定变量的值 3、让带有n个参数的可调用对象以较少的参数调用 4、在回调函数中携带额外的状态 1、定义匿名或内联函数 如果我们想提供一个...
    99+
    2022-11-12
  • Python-3 匿名函数
    #1、匿名函数计算a+b的值 func = lambda a,b:a+b result = func(2,3) #传入实参2和3,计算a+b,自动返回a+b的值。与def ...
    99+
    2023-01-31
    函数 Python
  • python-3_函数_匿名函数_正则_
    L=['a','b','c','d']for (offset,item) in enumerate(L):    print offset,item打印的结果:0 a1 b2 c4 d迭代器:for i in range(100):    ...
    99+
    2023-01-31
    函数 正则 python
  • Python匿名函数/排序函数/过滤函数
    一. lamda匿名函数   为了解决一些简单的需求而设计的一句话函数 # 计算n的n次方 def func(n): return n**n print(func(10)) f = lambda n: n**n print(f(...
    99+
    2023-01-31
    函数 Python
  • python函数和python匿名函数lambda详解
    目录1. python函数1.1 函数的作用1.2 函数定义1.3 函数调用1.4 函数的参数1.4.1 参数的传递1.4.2 参数类型1.4.2.1 位置参数(必备参数)1.4.2...
    99+
    2022-11-11
  • Python匿名函数详情
    目录1、匿名函数2、内置函数使用1、匿名函数 在python中,除了一般使用def定义的函数外,还有一种使用lambda定义的匿名函数。这种函数可以用在任何普通函数可以使用的地方,但...
    99+
    2022-11-12
  • Python函数基础(定义函数、函数参数、匿名函数)
    目录一、定义函数:1、简单的规则:2、语法3、无参函数4、有参函数5、空函数二、调用函数及返回值1、函数运行完毕所有代码,如果函数体不写return,则会返回None。2、函数可以返...
    99+
    2022-11-11
  • Python 高阶函数
    高阶函数:简单来讲,一个函数可以接收另一个函数来作为参数,这样的函数称之为高阶函数 map函数 会根据提供的函数对指定序列做映射,也就是说将函数作用在指定序列 语法为 map(function,interable...) ...
    99+
    2023-01-30
    高阶 函数 Python
  • python高阶函数
    高阶函数定义:1.函数接收的参数是一个函数名;2.函数返回的是一个函数名;只要满足上述条件中的任意一个条件的函数均属于高阶函数 例如:1.函数接收的参数为函数名2.函数返回的结果为函数名3.函数接收的参数为函数名,函数返回的结果为函数名...
    99+
    2023-01-31
    高阶 函数 python
  • Python基础:lambda 匿名函数
    格式 lambda argument1, argument2,... argumentN : expression square = lambda x: x**2 print(square(2)) 与常规函数区别   匿名函数 l...
    99+
    2023-01-31
    函数 基础 Python
  • Python 匿名函数lambda 详情
    目录1.前言2.如何使用 lambda3.总结1.前言 在 Python 中,说到函数,大家都很容易想到用 ​​def​​ 关键字来声明一个函数: def Hello():     ...
    99+
    2022-11-13
  • python匿名函数有哪些
    小编给大家分享一下python匿名函数有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!01  什么是匿名函数?     在python中,匿名函数,顾名思义,就是没有名...
    99+
    2023-06-14
  • 【Python基础】- 自定义函数和匿名函数
      🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬...
    99+
    2023-09-01
    python 开发语言
  • python 匿名函数相关总结
    目录01  什么是匿名函数? 02  函数式编程 03  lambda的性能如何?      写python的时...
    99+
    2022-11-11
  • python中lambda匿名函数详解
    在Python中,不通过def来声明函数名字,而是通过lambda关键字来定义的函数称为匿名函数 关键字lambda表示匿名函数 语法 lambda 参数:表达式 先写lambda关...
    99+
    2022-11-13
  • python中什么是匿名函数
    python中什么是匿名函数?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python主要应用领域有哪些1、云计算,典型应用OpenStack。2、WEB前端开...
    99+
    2023-06-14
  •  Python匿名函数lambda怎么用
    今天小编给大家分享一下 Python匿名函数lambda怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.前...
    99+
    2023-06-29
  • Python匿名函数lambda的用法
    本篇内容主要讲解“Python匿名函数lambda的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python匿名函数lambda的用法”吧!Python内置了多个关键字,今天我们来介绍下其...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作