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

汉沽网站建设公司优化自己的网站

汉沽网站建设公司,优化自己的网站,做网站的回扣,报价网站制作Python 迭代器 迭代器是一种对象,该对象包含值的可计数数字。 迭代器是可迭代的对象,这意味着您可以遍历所有值。 从技术上讲,在 Python 中,迭代器是实现迭代器协议的对象,它包含方法 iter() 和 next()。 迭代器 V…

Python 迭代器

迭代器是一种对象,该对象包含值的可计数数字。

迭代器是可迭代的对象,这意味着您可以遍历所有值。

从技术上讲,在 Python 中,迭代器是实现迭代器协议的对象,它包含方法 iter() 和 next()。

迭代器 VS 可迭代对象(Iterable)

列表、元组、字典和集合都是可迭代的对象。它们是可迭代的容器,您可以从中获取迭代器(Iterator)。

所有这些对象都有用于获取迭代器的 iter() 方法:

实例

从元组返回一个迭代器,并打印每个值:

mytuple = ("apple", "banana", "cherry")
myit = iter(mytuple)print(next(myit))
print(next(myit))
print(next(myit))

运行实例

apple
banana
cherry

甚至连字符串都是可迭代的对象,并且可以返回迭代器:

实例

字符串也是可迭代的对象,包含一系列字符:

mystr = "banana"
myit = iter(mystr)print(next(myit))
print(next(myit))
print(next(myit))
print(next(myit))
print(next(myit))
print(next(myit))

运行实例

b
a
n
a
n
a

遍历迭代器

我们也可以使用 for 循环遍历可迭代对象:

实例

迭代元组的值:

mytuple = ("apple", "banana", "cherry")for x in mytuple:print(x)

运行实例

python_iterator_loop_1.py
apple
banana
cherry

实例

迭代字符串中的字符:

mystr = "banana"for x in mystr:print(x)

运行实例

python_iterator_loop_2.py
b
a
n
a
n
a

提示:for 循环实际上创建了一个迭代器对象,并为每个循环执行 next() 方法。

创建迭代器

要把对象/类创建为迭代器,必须为对象实现 iter() 和 next() 方法。

正如您在 Python 类/对象 一章中学到的,所有类都有名为 init() 的函数,它允许您在创建对象时进行一些初始化。

iter() 方法的作用相似,您可以执行操作(初始化等),但必须始终返回迭代器对象本身。

next() 方法也允许您执行操作,并且必须返回序列中的下一个项目。

实例

创建一个返回数字的迭代器,从 1 开始,每个序列将增加 1(返回 1、2、3、4、5 等):

class MyNumbers:def __iter__(self):self.a = 1return selfdef __next__(self):x = self.aself.a += 1return xmyclass = MyNumbers()
myiter = iter(myclass)print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))

运行实例

python_iterator_create_1.py
1
2
3
4
5

StopIteration

如果你有足够的 next() 语句,或者在 for 循环中使用,则上面的例子将永远进行下去。

为了防止迭代永远进行,我们可以使用 StopIteration 语句。

next() 方法中,如果迭代完成指定的次数,我们可以添加一个终止条件来引发错误:

实例

在 20 个迭代之后停止:

class MyNumbers:def __iter__(self):self.a = 1return selfdef __next__(self):if self.a <= 20:x = self.aself.a += 1return xelse:raise StopIterationmyclass = MyNumbers()
myiter = iter(myclass)for x in myiter:print(x)

运行实例

python_iterator_create_2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
http://www.yayakq.cn/news/739971/

相关文章:

  • 小影wordpress做百度手机网站优化点
  • 自己做网站服务器可以吗wordpress输出副标题
  • 南通做网站公司备案备公司名跟网站名
  • 苏州网站推广建设黄骅港船舶动态查询平台
  • 网站建设公司河南郑州北京快三彩票app平台官网下载
  • 厦门建设银行招聘网站wordpress pitch
  • 北京网站制作公司清远简历模板免费下载wps可编辑
  • 山西省城乡建设厅网站网站 cms
  • 广东城乡住房建设厅网站网站运营成功案例
  • ipo和seoseo系统
  • 网站开发中为什么有两个控制层网站主体备案信息查询
  • 金融直播间网站建设wordpress pdf 免费
  • 太原建站模板系统黄冈市建设局官方网站
  • 万网公司注册网站wix做的网站能扒下来
  • 自己做游戏网站学什么wordpress 注册邮件
  • 如何把优酷视频放到网站上北京建设集团招聘信息网站
  • 中国查公司的网站北京信息发布平台
  • 广西 南宁 微信微网站开发宜昌教育培训网站建设
  • 竞价在什么网站上做公司请做网站
  • 微网站建设cwordpress 主机搬家
  • 代做道具网站专做民宿预定的网站
  • 网站开发毕业设计文档佛山市网站开发
  • 园林工建设有限公司网站最近刚发生的新闻
  • wordpress 企业站无锡游戏网站建设公司
  • 一站式服务平台登录常州app网站
  • 备案 几个网站免费网站开发
  • 传奇发布网站排行五金网站模板
  • 做一个网站要多长时间如何入侵网站后台
  • 网站修改思路wordpress网站安装
  • 网站空间租赁合同网站建设黄页在线免费