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())
answer

  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())
View Code
posted @ 2018-10-19 10:06  wangspy  阅读(55)  评论(0)    收藏  举报