iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python教程之生成器和匿名函数
  • 234
分享到

python教程之生成器和匿名函数

2024-04-02 19:04:59 234人浏览 泡泡鱼

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

摘要

目录生成器01 什么是生成器?02 通俗的讲解03 生成器到底有什么用?04 生成器的常见用途?匿名函数01 什么是匿名函数?02 通俗的讲解总结生成器 01 什么是生成器? 记住两

生成器

01 什么是生成器?

记住两个关键:

  • **生成器是一种特殊的函数方法。**意味着它和函数(def)密不可分。
  • 基于上一点,只要函数中出现yield关键字,就是生成器函数

初学的你,还是太难理解?

02 通俗的讲解

你可以将生成器理解为一个盒子,你可以向这个盒子里随意添加元素,当你需要的时候,再取出来用。

请看下面的例子:

# 普通函数
def func():
    return 1
f = func()
print("函数返回值:",f)
->函数返回值:1
print("函数返回值的类型:",type(f))
->函数返回值的类型:<class 'int'>
# 生成器
def gen\_func():
    yield 1
    yield 2
g = gen_func()
print("生成器对象:",g)
->生成器对象:object gen\_func at 0x00000189B8CFF7C8>
print("生成器对象的类型:",type(g))
->生成器对象的类型:<class 'generator'>
# 读取生成器对象的值,因为生成器也是一个迭代器,实现了python的迭代协议(即实现了\_\_iter\_\_方法)
for i in g:
 print("生成器对象的值:",i)
->生成器对象的值: 1
->生成器对象的值: 2

03 生成器到底有什么用?

作用:惰性求值(一边循环一边计算的机制),节省性能

04 生成器的常见用途?

举个例子:斐波那契数列(0,1,1,2,3,5…),打印斐波那契数列前50个元素

# 不使用生成器,会消耗大量内存
def fib(idx):
   res=[]
   n, a, b = 0, 0, 1
   while n < idx:
       res.append(b)
       a, b = b, a+b
       n += 1
   return res
res = fib(100)
print(res)
# 使用生成器,可节约大量内存
def gen\_fib(idx):
   n, a, b = 0, 0, 1
   while n < idx:
       yield b
       a, b = b, a+b
       n += 1
for i in gen_fib(100):
   print(i)

匿名函数

01 什么是匿名函数?

当:

  • 函数实现比较简单
  • 函数不需要被多个地方调用
  • 懒得给这个函数起名字时,我们可以使用匿名函数。

初学的你,还是太难理解?

02 通俗的讲解

你想实现一个求x的平方的函数,但是这个函数太简单,不值得专门def定义,同时,你忘记了平方的英文如何拼写,要是命名成 “pingfang”,又显得自己太low,于是乎,你可以不给这个函数起名字,还能实现它。这就是匿名函数lambda表达式。

比如:求一个数的平方

# 不用 lambda 表达式
def square(x):
    return x * x
print(square(2))
# 使用 lambda 表达式
# 写法:lambda 返回值:计算表达式
s = lambda x: x * x
print(s(2))

总结

1 如果你是初学者,可以先不掌握生成器和匿名函数,待学成Python后,再行琢磨;

2 在实际工作中,生成器和匿名函数的使用频次,相对较高,并且在面试中是高频问点。

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: python教程之生成器和匿名函数

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

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

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

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

下载Word文档
猜你喜欢
  • python教程之生成器和匿名函数
    目录生成器01 什么是生成器?02 通俗的讲解03 生成器到底有什么用?04 生成器的常见用途?匿名函数01 什么是匿名函数?02 通俗的讲解总结生成器 01 什么是生成器? 记住两...
    99+
    2024-04-02
  • python之高阶函数和匿名函数
    map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。 1 def func(x): 2 return x*x 3 4 r = ma...
    99+
    2023-01-30
    函数 高阶 python
  • day16-python之函数式编程匿名
    1.复习 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 name = 'alex' #name=‘lhf’ 4 def change_name(): 5 name...
    99+
    2023-01-31
    函数 python
  • python基础之引用和匿名函数
    a=1 #1 为对象, def func(x): print('x的地址{}'.format(id(x))) x=2 print('x的地址{}'...
    99+
    2024-04-02
  • 生成器send方法,递归,匿名函数,内置
    一,复习 ''' 1.带参装饰器 - 自定义 | wraps def wrap(info) def outer1(func): from functools import wraps @wrap...
    99+
    2023-01-31
    递归 生成器 函数
  • 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+
    2024-04-02
  • Python3匿名函数字典排序、生成式与
    1. 参数匿名函数字典排序 函数的参数: 参数类型:我们经常在看别人的代码中,经常出现def(*args,**kwargs)这样的表现形式; *args tuple(1,) **kwargs dict{"k...
    99+
    2023-01-31
    字典 函数
  • python基础之匿名函数详解
    目录1.匿名函数介绍2.语法3.使用场景4.匿名函数和普通函数的对比5.匿名函数的多种形式6.lambda 作为一个参数传递7. lambda函数与python内置函数配合使用8.l...
    99+
    2024-04-02
  • python基础之匿名函数介绍
    目录前言一、创建一个匿名函数:二、创建一个带参数的匿名函数三、求两个数的中的最大的值四、练习题:前言 在定义函数的时候,不想给函数起一个名字。这个时候就可以用lambda来定义一个匿...
    99+
    2024-04-02
  • 【Python基础】- 自定义函数和匿名函数
      🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬...
    99+
    2023-09-01
    python 开发语言
  • golang函数闭包和匿名函数之间的区别
    go 语言中的闭包和匿名函数的主要区别在于:闭包可以访问其创建范围之外的变量;匿名函数不能访问其创建范围之外的变量。 Go 语言中函数闭包和匿名函数之间的区别 闭包 闭包是一个函数,它...
    99+
    2024-04-24
    golang 闭包 匿名函数
  • 深入解析python返回函数和匿名函数
    目录一、返回函数1、闭包2、nonlocal二、匿名函数——lambda此文章继续上篇高阶函数,地址:python函数式编程以及高阶函数 一、返回函数 高阶函...
    99+
    2024-04-02
  • Python技巧匿名函数、回调函数和高阶函数
    目录1、定义匿名或内联函数 2、在匿名函数中绑定变量的值 3、让带有n个参数的可调用对象以较少的参数调用 4、在回调函数中携带额外的状态 1、定义匿名或内联函数 如果我们想提供一个...
    99+
    2024-04-02
  • python如何动态生成函数名
    在python中动态生成函数名,具体方法如下:funcs = {'CONNECT': connect,'RAWFEED': rawfeed,'RAWCONFIG' : rawconfig,'TESTFEED': testfeed}funcs...
    99+
    2024-04-02
  • 浅谈Python函数式编程的返回函数与匿名函数
    目录返回函数匿名函数返回函数 所谓返回函数,顾名思义,就是把函数作为返回值。高阶函数除了可以将函数作为参数之外,还可以将函数作为结果进行返回。下面来实现一个可变参数的连乘,求积函数可...
    99+
    2023-05-15
    Python函数 Python函数式 Python返回函数 Python匿名函数
  • javascript之匿名函数和闭包的示例分析
    小编给大家分享一下javascript之匿名函数和闭包的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下匿名函数<script type="te...
    99+
    2024-04-02
  • Python生成器/生成器函数/推导式/
    1. 生成器   生成器的本质就是迭代器   在python中有三种⽅方式来获取⽣生成器:     1. 通过生成器函数     2. 通过各种推导式来实现⽣成器     3. 通过数据的转换也可以获取生成...
    99+
    2023-01-31
    生成器 函数 Python
  • Python 中的lambda匿名函数和三元运算符
    目录匿名函数什么是匿名函数分类三元运算符匿名函数 什么是匿名函数 用一句话表达只有返回值的函数就是匿名函数。匿名函数只用来实现一些简单的函数功能,所以追求代码的简洁和高效。使用关键字...
    99+
    2024-04-02
  • Pythonrange函数之生成器函数的示例
    目录range函数—生成器函数1. 什么是range( )函数2. 回顾列表切片的语法3. range( )函数的语法3. range函数实操3.1 只有1个参数3.2 ...
    99+
    2022-12-08
    Python range函数 Python 生成器函数
  • python生成器函数的执行过程
    python生成器函数的第一次理解,后面会进行更正和补充 #python生成器函数的第一次理解,后面会进行更正和补充 #@author :王志超 #qq:1764681289 欢迎交流 def gene():     for i in ...
    99+
    2023-01-31
    生成器 函数 过程
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作