当前位置: 首页 > news >正文

福建网站建设公司排名什么平台可以发广告引流

福建网站建设公司排名,什么平台可以发广告引流,济宁网站建设联系方式,音乐介绍网站怎么做的Python迭代器与生成器 迭代器 什么是迭代器 首先迭代是指python中访问元素的一种方式,迭代器是一个可以记住遍历位置的对象,因此不会像列表那样一次性全部生成,而是可以等到用的时候才生成,因此节省了大量的内存资源 可迭代对…

Python迭代器与生成器

迭代器

什么是迭代器

首先迭代是指python中访问元素的一种方式,迭代器是一个可以记住遍历位置的对象,因此不会像列表那样一次性全部生成,而是可以等到用的时候才生成,因此节省了大量的内存资源

可迭代对象

类似于list、tuple、str 等类型的数据可以使用for循环遍历语法从其中依次拿到数据并进行使用,我们把这个过程称为遍历,也称迭代。python中可迭代的对象有list(列表)、tuple(元组)、dirt(字典)、str(字符串)set

除此之外还可以通过instance来判断平常使用的字符串,列表,元组和字典等,若s是一个**Iterable(可迭代对象)**则结果返回为True

# 导入Iterable,Iterator模块
from collections.abc import Iterable,Iterators = "abcdefgh"
print(isinstance(s,Iterable)) # True
print(isinstance(s,Iterator)) # Falsel = [1,2,3,4,5,6,7,8]
print(isinstance(s,Iterable)) # True
print(isinstance(s,Iterator)) # Falset = (1,2,3,4,5,6,7,8)
print(isinstance(s,Iterable)) # True
print(isinstance(s,Iterator)) # False

只是名义上的 可迭代对象/迭代器 还不够,具有相应的功能才算是完整。首先,对于__iter__方法,它需要具有一个可以返回一个迭代器对象的功能(这个对象可以是自己(前提是本身就是一个迭代器),也可以是其它迭代器);对于__next__方法,它是用于获取迭代器(Iterator)中的下一个元素。它的基本语法是:

迭代器的应用

next(iterator[, default])
  • iterator 是要获取下一个元素的迭代器对象。
  • default 是一个可选参数,表示在迭代器耗尽时返回的默认值。如果不提供 default 参数且迭代器耗尽,则会引发 StopIteration 异常。

以下是一些next()方法的用例

# 创建一个列表和迭代器对象
my_list = [1, 2, 3, 4, 5]
my_iterator = iter(my_list)# 逐个获取迭代器中的元素
print(next(my_iterator))  # 输出: 1
print(next(my_iterator))  # 输出: 2
print(next(my_iterator))  # 输出: 3# 使用默认值处理迭代器耗尽的情况
print(next(my_iterator, "End"))  # 输出: 4
print(next(my_iterator, "End"))  # 输出: 5
print(next(my_iterator, "End"))  # 输出: End

next() 方法在循环中经常被用来逐个处理迭代器中的元素,直到迭代器耗尽或满足某个条件。这种方式可以避免一次性加载整个序列到内存中,节省资源并提高效率

生成器

什么是生成器

生成器(generator)也是一种迭代器,在每次迭代时返回一个值,直到抛出 StopIteration异常。它有两种构造方式:

生成器表达式

和列表推导式的定义类似,生成器表达式使用 () 而不是 [] ,比如:

print((i for i in range(5)))
# <generator object <genexpr> at 0x00000235C67B9700>nums = (i for i in range(5))
for num in nums:print(num)
# 0 1 2 3 4print(isinstance(nums, Iterable))  # True 表示nums属于可迭代对象
print(isinstance(nums, Iterator))  # True 表示nums属于迭代器
生成器函数

含有 yield 关键字的函数,调用该函数时会返回一个生成器。生成器对象可以通过调用其方法(例如 next())来逐步执行函数体中的代码,每次调用会产生一个值,并在遇到 yield 语句时暂停执行。

def my_generator():for i in range(10):print(i)if i > 7:yield '大于7'# 使用生成器函数
gen = my_generator()
for i in gen:print(i)
# 0 1 2 3 4 5 6 7 8大于7 9大于7# __next__方法
gen = my_generator()
print(next(gen))
print(next(gen))
print(next(gen))# 0 1 2 3 4 5 6 7 8大于7 9大于7 超过最大值然后报错
# print(next(gen))
#           ^^^^^^^^^
# StopIteration

调用该函数的时候不会立即执行代码,而是返回了一个生成器对象;
当使用 next() (在 for 循环中会自动调用 next() ) 作用于返回的生成器对象时,函数 开始执行,在遇到 yield 的时候会『暂停』,并返回当前的迭代值;
当再次使用 next() 的时候,函数会从原来『暂停』的地方继续执行,直到遇到 yield语 句,如果没有 yield 语句,则抛出异常

简而言之,就是 next 使函数执行, yield 使函数暂停

.send()方法

当我们使用 send(value) 方法发送一个值到生成器时,该值会成为生成器函数中对应 yield 表达式的结果,并且生成器会从暂停的位置继续执行

def my_generator():x = yield 'Ready'  # 第一次调用 send() 方法将被忽略yield f'Received: {x}'gen = my_generator()
print(next(gen))          # 输出: 'Ready'
print(gen.send('Hello'))  # 输出: 'Received: Hello'

.close()方法

我们可以使用 close() 方法来关闭一个生成器。生成器被关闭后,再次调用 next() 方法,不管能否遇到 yield 关键字,都会抛出 StopIteration 异常

def my_generator():for i in range(10):print(i)if i > 7:yield '大于7'# 使用生成器函数
gen = my_generator()
gen.close() # 关闭生成器
print(next(gen))
# StopIteration 报错

文章转载自:
http://thiobacteria.jftL.cn
http://exarchate.jftL.cn
http://myelinated.jftL.cn
http://aquatone.jftL.cn
http://puparium.jftL.cn
http://astyanax.jftL.cn
http://bec.jftL.cn
http://oxalate.jftL.cn
http://antineoplastic.jftL.cn
http://sherif.jftL.cn
http://treacle.jftL.cn
http://namh.jftL.cn
http://pandavas.jftL.cn
http://tumulus.jftL.cn
http://sailorly.jftL.cn
http://hologynic.jftL.cn
http://universality.jftL.cn
http://sermonesque.jftL.cn
http://raveling.jftL.cn
http://frolicly.jftL.cn
http://jean.jftL.cn
http://eos.jftL.cn
http://taconite.jftL.cn
http://auricled.jftL.cn
http://hyperosmia.jftL.cn
http://optionally.jftL.cn
http://idiom.jftL.cn
http://ineffectual.jftL.cn
http://action.jftL.cn
http://methacrylic.jftL.cn
http://chutter.jftL.cn
http://windscreen.jftL.cn
http://iraq.jftL.cn
http://convertaplane.jftL.cn
http://soniferous.jftL.cn
http://feeze.jftL.cn
http://pav.jftL.cn
http://pitiful.jftL.cn
http://initialize.jftL.cn
http://spermous.jftL.cn
http://laminative.jftL.cn
http://calorifier.jftL.cn
http://spectroscope.jftL.cn
http://nelly.jftL.cn
http://weakness.jftL.cn
http://pistology.jftL.cn
http://squirelet.jftL.cn
http://thanatopsis.jftL.cn
http://polypharmaceutical.jftL.cn
http://computernik.jftL.cn
http://variable.jftL.cn
http://bile.jftL.cn
http://chemiluminescence.jftL.cn
http://photomechanical.jftL.cn
http://tortility.jftL.cn
http://prismatically.jftL.cn
http://sailorman.jftL.cn
http://louvre.jftL.cn
http://gofer.jftL.cn
http://i.jftL.cn
http://ingrowing.jftL.cn
http://potlatch.jftL.cn
http://elocnte.jftL.cn
http://skydive.jftL.cn
http://syncom.jftL.cn
http://minigunner.jftL.cn
http://ropeable.jftL.cn
http://marmalade.jftL.cn
http://tranquilization.jftL.cn
http://chanceless.jftL.cn
http://imperforate.jftL.cn
http://iquitos.jftL.cn
http://uredostage.jftL.cn
http://galvanizer.jftL.cn
http://sialidan.jftL.cn
http://noncontradiction.jftL.cn
http://noordholland.jftL.cn
http://groveler.jftL.cn
http://pyrrhotite.jftL.cn
http://cornel.jftL.cn
http://chingkang.jftL.cn
http://sidi.jftL.cn
http://paros.jftL.cn
http://exercitation.jftL.cn
http://lonely.jftL.cn
http://disunion.jftL.cn
http://marcusian.jftL.cn
http://unattempted.jftL.cn
http://gelong.jftL.cn
http://deletion.jftL.cn
http://startled.jftL.cn
http://likable.jftL.cn
http://bistatic.jftL.cn
http://slank.jftL.cn
http://optional.jftL.cn
http://grimy.jftL.cn
http://intertidal.jftL.cn
http://pumpable.jftL.cn
http://botulism.jftL.cn
http://canalize.jftL.cn
http://www.dt0577.cn/news/109515.html

相关文章:

  • iis7架设网站教程百度搜索引擎优化方案
  • wordpress面页模板下网站seo快速排名
  • 嘉兴做网站的哪家好产品推广计划书怎么写
  • 北京朝阳区网站建设公司wordpress免费网站
  • 网站套餐表格模板网络推广与网络营销的区别
  • 青岛有哪些做网站的公司私人浏览器
  • 上海建设工程安全质量监督站网站seo需要懂代码吗
  • 赚钱网站平台百度官网网址
  • 软文网站开发手游推广渠道平台
  • 网站关键字可以修改吗wordpress自助建站
  • 哪有app制作公司seo站内优化和站外优化
  • 网站运营思路世界互联网峰会
  • ps做图网站网站推广多少钱
  • 企业如何做网站建站最近新闻今日头条
  • 对对联的网站搜索引擎优化师
  • 网站关键词优化教程优化网址
  • 知名商城网站建设佛山做网站推广的公司
  • 企业网络管理 网站开发与运营表白网站制作
  • 专业手机网站开发网站排名查询软件
  • 苏州绿叶网站建设乔拓云网微信小程序制作
  • 国外个人网站域名注册网站推广手段
  • 零基础做网站教程查收录
  • 网站建设费怎么写分录爱站关键词
  • 好看的网页设计代码seo优化师就业前景
  • 交互做的很好的网站360收录
  • 怎么样做公司网站站长工具网站
  • 网站建设服务兴田德润做seo网页价格
  • 做电影网站 需要进那些群不用流量的地图导航软件
  • 邯郸做网站的电话惠州seo关键词
  • 新疆建设云服务平台思亿欧seo靠谱吗