福建得兴建设工程网站腾讯云如何做网站
福建得兴建设工程网站,腾讯云如何做网站,南昌做seo的公司有哪些,做设计网站迭代器和生成器---- 迭代器协议和for循环工作机制1.迭代器协议#xff1a;对象必须提供一个next方法#xff0c;执行该方法要么返回迭代中的下一项#xff0c;要么引起一个Stoplteration异常#xff0c;以终止迭代#xff08;只能往后走#xff0c;不能往前走#xff09…迭代器和生成器---- 迭代器协议和for循环工作机制1.迭代器协议对象必须提供一个next方法执行该方法要么返回迭代中的下一项要么引起一个Stoplteration异常以终止迭代只能往后走不能往前走2.可迭代对象实现了迭代器的对象如何实现对象内部定义一个_iter_()方法3.协议是一种约定可迭代对象实现了迭代器协议python的内部工具如for循环sum,min,max函数等使用迭代器协议访问对象。 dic {a:1,b:2}
iter_ddic.__iter__() # 相当于for循环的迭代。 列表字典文件等有_iter_()方法的都可以
print(iter_d.__next__()) for循环的本质循环所有对象全部都是使用的迭代协议 -for循环机制也可以用while表示 a[1,2,3,4,5]
iter_aa.__iter__()
while True:try:print(iter_a.__next__())except StopAsyncIteration:print(迭代完毕循环终止)break -迭代器原理 1. a [1,2,3,4,5]
iter_aa.__iter__() # 切换为迭代器形式print(iter_a.__next__())
print(iter_a.__next__())
print(iter_a.__next__())
print(iter_a.__next__())
print(iter_a.__next__()) 运行结果 1
2
3
4
5Process finished with exit code 0 2.用next方法 a [1,2,3,4,5]
iter_aa.__iter__() # 切换为迭代器形式print(next(iter_a))
print(next(iter_a))
print(next(iter_a))
print(next(iter_a))
print(next(iter_a)) 运行结果是一样的 只要遵循迭代器协议那就是可迭代对象。 ------ 初识生成器 可以理解为一种数据类型。这种数据类型自动实现了迭代器协议其他的数据类型需要调用自己内置的_iter_方法所以生成器就是可迭代对象。 --生成器表现形式 1.生成器函数 def test():yield 1
gtest()
print(g) # 生成器内存地址
print(g.__next__()) 运行结果 generator object test at 0x0000023EBB890B101Process finished with exit code 0 2.生成器表达式 res(i for i in range(11))
print(res.__next__())
print(res.__next__()) 运行结果 0
1Process finished with exit code 0 ps: 三元表达式 namejohn
res1 if name john else2 #如果namejohn,返回1不是则返回2
print(res) 运行结果 1Process finished with exit code 0 转载于:https://www.cnblogs.com/liujinjing521/p/11193880.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/89900.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!