day014 生成器进阶
一、生成器进阶
待补充
二、生成器表达式
(一)列表推导式
eggs = ['eggs %s' % i for i in range(10) ]
(二)生成器表达式
g = (i for i in range(10))
(三)总结
表达式:[每一个元素或者是和元素相关的操作 for 元素 in 可迭代数据类型]
1 # 30以内所有能被3整除的数 2 3 ret = [i for i in range(30) if i % 3 == 0] 4 print(ret) 5 6 g = (i for i in range(30) if i % 3 == 0) 7 g.__next__()
三、作业
1、处理文件,用户指定要查找的文件和内容,将文件中包含要查找内容的每一行都输出到屏幕
1 def check_file(filename, cont): 2 with open(filename, encoding='utf-8') as f: 3 for i in f: # 读内容 4 if cont in i: # 查找内容并返回 5 yield i 6 7 8 g = check_file("test", 'this') 9 10 for i in g: 11 print(i.strip())
2、写生成器,从文件中读取内容,在每一次读取到的内容之前加上‘***’之后再返回给用户。
1 def check_file(filename, cont): 2 with open(filename, encoding='utf-8') as f: 3 for i in f: # 读内容 4 if cont in i: # 查找内容并返回 5 yield '******' + i 6 7 8 g = check_file("test", 'this') 9 10 for i in g: 11 print(i.strip())

浙公网安备 33010602011771号