为什么将生成器表达式称为?

问题描述

一方面,我们有

  • 列表理解[x for x in range(10)]
  • 设置理解力{x for x in range(10)}
  • 词典理解{x: x for x in range(10)}

另一方面,我们有

  • 生成器表达式(x for x in range(10))

为什么前三个表达式被称为“理解”,而最后一个被称为“表达式”?它们的表示方式几乎相同,我想它们的工作方式也非常相似。背后有什么微妙的原因吗?只是出于好奇。

参考:

解决方法

理解产生新对象,这些新对象立即消耗内部for循环。它们一旦运行就“完成”。

生成器的计算是延迟的-它们会立即返回,并返回一个稍后会产生单个值的对象。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...