【发布时间】:2020-09-10 14:56:45
【问题描述】:
我仍在处理下面的代码,代码运行良好。我正在尝试减少代码行数。
import calendar as c
def solve(first, last):
weekends = []
# x = [weekends.append(m) if c.weekday(y,m,1) == 4 and c.weekday(y,m,31) == 6 else 0 for m in [1,3,5,7,8,10,12] for y in range(first,last+1)]
for y in range(first,last+1):
for m in [1,3,5,7,8,10,12]:
if c.weekday(y,m,1) == 4 and c.weekday(y,m,31) == 6:
weekends.append(m)
return c.month_abbr[weekends[0]], c.month_abbr[weekends[len(weekends)-1]], len(weekends)
调用时:solve(2016,2020)
此代码返回 2016 年的第一个月,它有 5 个星期五、星期六、星期日;与 2020 年最后一个月相同,以及满足此条件的月份数。
所以输出是:('Jan', 'May', 5)
x 变量的注释部分是我尝试过的,它返回 0 和 None(因为 else 语句)
【问题讨论】:
标签: python python-3.x for-loop list-comprehension