繁体   English   中英

获取每月的最后一个星期日 - python

[英]Get last sunday of month - python

我有一个关于 2 行代码的问题 - 从我的想法来看,它应该是相同的,但是我得到了这 2 行不同的输出。

有人可以解释我为什么吗?

max(week[-1] for week in calendar.monthcalendar(year,month))
max(calendar.monthcalendar(year,month)[-1])

年 = 2021 和月 = 3

对于第一行,我得到了正确的 output 28th 星期天。 对于第二行,我得到 31,这基本上就是最后一个数字。 月历中的 week[-1] 应该是最后一个数组吗? 在这种情况下是 [29,30,31,0,0,0,0] 所以它的最大值应该是 31

max(week for week in calendar.monthcalender(year,month))
max(week[-1] for week in calendar.monthcalendar(year,month))

还有这 2 行——第一行给了我一个数组 [29,30,31,0,0,0,0],第二行给了我一个数字 28,我不明白为什么? 第一个返回 31 和第二个 28 不应该吗?

我建议查看部分数据以了解发生了什么:

max(week[-1] for week in calendar.monthcalendar(year,month))循环遍历日历的周列表。 for 循环的 output 为: 7, 14, 21, 28, 0 :打印一周的最后一天。 因此max返回28 ,因为它是这个的最大值。

第二个max(calendar.monthcalendar(year,month)[-1])需要一个月的最后一周[29, 30, 31, 0, 0, 0, 0] 因此max返回31

第三个max(week for week in calendar.monthcalender(year,month))给出了月历的最大列表。 请参阅使用大于或小于运算符比较两个列表为什么会返回最后一个列表。

第四个与第一个相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM