生成器与匿名函数:概念、理解、用途全解析

发电机01什么是发电机?

生成器与匿名函数:概念、理解、用途全解析

记住两个钥匙:

您是初学者,他们仍然很难理解吗?

02流行的解释

您可以将发电机视为框,可以随意添加元素,然后在需要时将它们取出。

请参阅以下示例:

# 普通函数
def func():
    return 1
f = func()
print("函数返回值:",f)
->函数返回值:1
print("函数返回值的类型:",type(f))
->函数返回值的类型:
# 生成器
def gen\_func():
    yield 1
    yield 2
g = gen_func()
print("生成器对象:",g)
->生成器对象:object gen\_func at 0x00000189B8CFF7C8>
print("生成器对象的类型:",type(g))
->生成器对象的类型:
# 读取生成器对象的值,因为生成器也是一个迭代器,实现了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平方的函数,但是此功能太简单了,不值得定义。同时,您忘记了如何用英语拼写广场。如果您将其命名为“ pingfang”,它似乎太低了,因此您可以在不命名此功能的情况下做到这一点。这是匿名函数lambda表达式。

例如:找到一个数字的平方

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

总结

1如果您是初学者,则无法先掌握发电机和匿名功能,然后在学习Python后考虑一下;

2在实际工作中,发电机和匿名功能的频率相对较高,这是访谈中的高频提问点。

这就是本文的全部。希望它能为您提供帮助,并希望您可以更多地关注脚本家庭中更多内容!

你可能想看:
« 上一篇
下一篇 »

相关推荐

python爬虫教程PDF,Python爬虫书PDF

2026年09月02日

31阅读

外国教程python,python编程教学视频

2026年09月02日

25阅读

python简明教程沈洁元,python详细基础教程

2026年09月02日

21阅读

python库包教程,python 包

2026年09月02日

26阅读

python教程大全集,python教程600集

2026年09月02日

26阅读

python入门教程完整版,python零基础入门全套教程视频

2026年09月02日

22阅读