所以我制定了一个程序,计算每个月的工作时数,不包括今年的周末
M = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
mod_sums = [ (s - (s // 7) - ((s + 1) // 7)) * 8 for s in M]
values = ' '.join(str(v) for v in mod_sums)
print(values)
这是代码的结果:
0 184 160 184 176 184 176 184 184 176 184 176 184
所以现在我要做的就是在每个号码之前我希望它显示月份的名称,例如:
0 January = 184 February = 160 March = 184 etc, etc..
我怎样才能做到这一点?
答案 0 :(得分:2)
在这里,只需创建一个月份列表,然后加入它们,
In [18]: month_lst = ['January', 'Feburary', 'March', 'April', 'May', 'June', 'July',
...: 'August', 'September', 'October', 'November', 'December']
In [20]: ' ,'.join(' = '.join(v) for v in zip(month_lst,map(str,mod_sums)))
Out[20]: 'January = 184 ,Feburary = 160 ,March = 184 ,April = 176 ,May = 184 ,June = 176 ,July = 184 ,August = 184 ,September = 176 ,October = 184 ,November = 176 ,December = 184'
答案 1 :(得分:1)
如果您不想手动创建月份列表,则可以使用Calendar API执行此操作。如果calendar.month_name[i]
,January
会输出i=0
等等......
>>> import calendar
>>> M = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
>>> mod_sums = [ (s - (s // 7) - ((s + 1) // 7)) * 8 for s in M]
>>> values = str(mod_sums[0]) + " " + ' '.join("{} = {}".format(calendar.month_name[i], v) for i,v in enumerate(mod_sums[1:],start=1))
<强>输出强>
>>> values
>>> '0 January = 184 February = 160 March = 184 April = 176 May = 184 June = 176 July = 184 August = 184 September = 176 October = 184 November = 176 December = 184'
答案 2 :(得分:1)
我会在Calendar API的帮助下创建一个for循环:
import calendar
M = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
print(M[0], end=" ") # For whatever reason you are printing this value
for i in range(1,len(M)):
print(calendar.month_name[i],"=",(i - (i // 7) - ((i + 1) // 7)),end=" ")