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

电商商城网站学网站建设要什么

电商商城网站,学网站建设要什么,河南网站seo地址,陕西交通建设集团西长分公司网站Python迭代器与生成器 迭代器 什么是迭代器 首先迭代是指python中访问元素的一种方式#xff0c;迭代器是一个可以记住遍历位置的对象#xff0c;因此不会像列表那样一次性全部生成#xff0c;而是可以等到用的时候才生成#xff0c;因此节省了大量的内存资源 可迭代对…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 0x00000235C67B9700nums (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 fReceived: {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://www.lakalapos1.cn/news/35410/

相关文章:

  • 怎么做加盟美容院网站初二信息课网站怎么做
  • 徐州网站关键词排名wordpress图片延缓插件
  • 网站导航网站怎么做拍卖行 网站建设
  • 网站建设 山东如何制作自己的网站并且插口代码
  • 旅游网站开发选题背景辽宁建设工程信息网项目经理变更
  • 东莞网站优化关键词推广网站可以做软件检测吗
  • 深圳工业产品设计公司怎么做seo关键词优化
  • 做的网站在百度搜索不到呼市网站设计公司
  • dedecms行业门户网站模板南京房产网
  • 怎么找有赞做网站郴州市官网入口
  • 天津高端网站建设制作做自媒体与做网站
  • 网站开发项目实训烟台市科技局网站
  • 淘宝网站建设图片素材昆山网站开发的公司
  • 网站文件夹命名怎么做网站建设几种语言对比
  • 云南网站建设天锐科技.net电子商务网站开发
  • 自己怎么做卖服装的网站wordpress标题图片
  • 国外做蒸汽锅炉的网站怎么创建网站自己创建
  • 做网站页面的需要哪些技巧网络营销策划的具体流程是
  • 深圳做微商网站设计建设银行网站无法打开
  • 福田网站建设龙岗网站建设罗湖网站建设成都专业网站制作网站
  • 做dj音叉网站平台网站建设源文件
  • 做百度收录比较好的网站生鲜网站开发背景
  • 西安公司地址关键词优化网站
  • 马鞍山建设机械网站广州新塘建网站
  • 网站建设毕业设计中期进度报告wordpress 导航栏顺序
  • 沧州品牌网站建设wordpress相册火车头发布
  • 按揭车在哪个网站可以做贷款wordpress页脚修改
  • 网站建设简单北京优化营商
  • 新泰网站制作公司个人网站主页模板
  • 外包+网站开发公司大型网站建设开发设计公司