# 两种方式实现生成整数11, 22, 33, 44, 55, 66, 77, 88, 99的生成器 # 将列表推导式中的[]换成()即是列表生成器 # 方法1 使用列表生成器 # list1 =[11,22,33,44,55,66,77,88,99] # a = (i for i in list1) # for i in range(9): # print(next(a)) # 方法2 # list2 = [11,22,33,44,55,66,77,88,99] # def creatNum(): # for i in list2: # yield i # yield作用 1:当程序运行到当前会被暂时挂起 2 yield会将其后的值作为返回值返回给调用的代码,即文中的creatNum() # # a = creatNum() # next(a) # print(next(a)) # 方法2函数与生成器的不同 list2 = [11,22,33,44,55,66,77,88,99] def creatNum(): for i in list2: print(i) creatNum() print("-----------------华丽的分割线------------") # 方法3 a = 11 def makeNum(): for i in range(1,10): yield a*i c = makeNum() # for i in range(9): # # 使用next()去调用一旦数据被取完会产生崩溃异常 # print(next(c)) # 为了使程序不在数据取完后崩溃,我们将迭代器对象进行遍历,取出数据即可 for i in c: print(i)
生成器及注意事项
最新推荐文章于 2024-10-13 19:04:04 发布