生成器表达式
[i for i in range(100)]       #列表解析

 与列表解析的不同是,列表解析用中括号,生成器表达式用小括号

g = (i for i in range(1000))    #生成器表达式     #不用yield的表达形式

print(g)  #这是一个迭代对象
print(next(g)) #next(g) == g.__next__() #next(g)相当于g.__next__()
print(next(g)) #next(g) == g.__next__()
print(next(g)) #next(g) == g.__next__()
print(next(g)) #next(g) == g.__next__()
print(next(g)) #next(g) == g.__next__()

生成器表达式的应用:

# 列表解析
l = []
with open('goods', encoding='utf-8') as f:
l = [float(line.split()[1]) * int(line.split()[2]) for line in f]
print(sum(l)) # 生成器表达式
with open('goods', encoding='utf-8') as f:
g = (float(line.split()[1]) * int(line.split()[2]) for line in f)
print(sum(g)) # 换个方式
g = (float(line.split()[1]) * int(line.split()[2]) for line in open('goods', encoding='utf-8'))
print(sum(g))

  

最新文章

  1. 从零自学Hadoop(22):HBase协处理器
  2. ASP.NET MVC HtmlHelper之Html.ActionLink
  3. [ERROR] Plugin 'InnoDB' init function returned error
  4. 【poj1236】 Network of Schools
  5. Android应用开发学习笔记之菜单
  6. Android 模仿电视机关闭界面
  7. linux出现bash: ./java: cannot execute binary file 问题的解决办法
  8. delphi 带历史信息的菜单
  9. Android开发之ContentValues
  10. ECshop网店系统百万级商品量性能优化-加快首页访问速度
  11. iOS文件系统的管理-b
  12. poj2752Seek the Name, Seek the Fame
  13. 新书《Linux就是这个范儿》预售
  14. django中静态文件的配置路径
  15. Metasploit学习记录---Nessus简单使用
  16. 如何在C++中使用动态三维数组
  17. css -理解盒模型
  18. java线程安全之并发Queue
  19. VS2017上在线和离线安装Qt插件(在线安装)
  20. spark streaming检查点使用

热门文章

  1. 「暑期训练」「Brute Force」 Optimal Point on a Line (Educational Codeforces Round 16, B)
  2. 自动化测试学习之路--java String、StringBuilder
  3. Spark集群管理器介绍
  4. lubuntu 使用USB摄像头
  5. Name node is in safe mode.
  6. Jboss6内存修改
  7. .Net MVC中使用css 和js
  8. jetty-maven-plugin
  9. fetch_array()与fetch_assoc()的用法
  10. Storm之详解spout、blot