只是另一种变化:
>>> for m in range(1, 13): print 'JanFebMarAprMayJunJulAugSepOctNovDec'[:3*m][-3:], Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
而另一个:
>>> for m in range(1, 13): print ' JFMAMJJASONDaeapauuuecoenbrrynlgptvc'[m::12], Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
我不确定有什么其他限制,但split是一个字符串操作。所以,这样的事情应该有效:
split,将字符串转换为列表,然后只返回与您提供的索引对应的值。 “-1”是因为列表总是从索引0开始。
def month(n): a = "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split() return a[n - 1]
演示:
月(4) - >四月
没有这些限制,将数字转换为三个月的缩写的理想方法是使用Python的日期时间:
from datetime import datetime datetime.strptime('4', '%m').strftime('%b')
以上将输出'Apr'
切片操作允许您返回一个较大的字符串。
>>> 'abcde'[2:4] 'cd' >>> 'fghijkl'[2:2+3] 'hij'
def month(n): end = 3*n - 1 start = end - 2 return 'JanFebMarAprMayJunJulAugSepOctNovDec'[start:end+1] for i in range(1,13): print(month(i)) Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
def month(num): month = 'JanFebMarAprMayJunJulAugSepOctNovDec' print month[(num-1)*3:num*3]