python - 更改括号类型更改返回类型
问题描述
我是我项目中的一些代码,但我遇到了一个我解决的问题,但我不知道它是如何工作的。当我更改代码中使用的括号类型时,年份的值是不同的。
当我在第 2 行中使用方括号在语句的开头和结尾之后=
import datetime
years=[x for x in range(2015,datetime.datetime.now().year)]
当我print(years)
给出输出时[2015,2016,2017,2018]
但是当我像这样在第 2 行使用圆括号时
years=(x for x in range(1940,datetime.datetime.now().year))
当我打印它时,它会给出输出<generator object <genexpr> at 0x041DB630>
我不明白为什么会发生这种情况,谁能解释一下。谢谢
解决方案
这是两个不同但相关的结构。
[x for x in range(2015,datetime.datetime.now().year)]
被称为列表推导,而
(x for x in range(2015,datetime.datetime.now().year))
被称为生成器表达式。
阅读更多https://djangostars.com/blog/list-comprehensions-and-generator-expressions/
推荐阅读
- python - 数据框列的正则表达式
- java - 如何将 offsetTime 添加到 UTC 时间以获得正确的 ZonedDateTime?
- java - 如何在 build.bnd 中定义可选分辨率的通用导入包
- monitoring - Prometheus EKS 集群监控
- python - 我想通过在 python 中传递元组列表来创建图像
- google-apps-script - 如何通过 Google App Script 从 Google Cloud Storage 获取上传的文件 URL
- ios - 快速滚动时自定义标题内容动画
- c# - 从不同的表中选择字段
- c# - 如何在 asp.net 中生成刷新令牌?
- python - 处理不属于模型的嵌套序列化程序?