#生成器def MyDemo(M): for i in range(M): yield i**2for item in MyDemo(9): print(item) # #生成器import sysa=(i**2 for i in range(5))while True: try: print(next(a)) except Exception: #现在有一个需求,求一段文字中,每个单词出现的位置. def index_words(text):#如果字段是空,那就返回0 if text=="&q…
生成器 如果创建一个有很多元素的列表,但是只需要访问前几个元素,后面的元素占着的空间就白白浪费了 在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间. 在Python中,这种一边循环一边计算的机制,称为生成器:generator. 要创建一个generator,有很多种方法 第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator: L = [x * x for x in range(10)] g = (x * x for x in…
目录: 一.列表生成器 二.生成器 三.迭代器 一.列表生成器 a = [x for x in range(10)] b= [y*2 for y in range(10)] def f(n) return n*n*n c = [f(z) for z in range(10)] 列表生成器会将所有的内容加载到内存中,在生成大量的数据时,会占用内存 生成器只会生成一个 generator object ,占用很少内存,只会在调用时才产生值.且只能按顺序取值 二.生成器 1.基础代码 b = (…