我想取月份和日期的值,并以更短的格式保存它们。我目前将整数1-31转换为整数或字母的代码如下所示:
def make_one_char(x):
list = [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i',
'j',
'k',
'l',
'm',
'n',
'o',
'p',
'q',
'r',
's',
't',
'u',
'v',
'w',
'x',
'y',
'z'
]
return list[x]
# conver them to single char
file_dates = [file_date.year, make_one_char(file_date.month), make_one_char(file_date.day)]
print(file_dates)
它的工作完全符合预期,但我忍不住想知道是否有一个更有效的方式做到这一点。
1条答案
按热度按时间7kqas0il1#
你可以用chr()函数按Unicode码点返回字符。如果你仔细观察Unicode character list,你可能会注意到从
a
到z
的字母是连续的,它们的开始和结束码点分别是97
和122
。所以,如果我们得到x > 10
,我们应该返回chr(97 + x - 10)
,否则返回x本身。下面是更新的代码:另外请注意,在您的原始代码中,您使用
list
作为变量名,请不要隐藏内置名称。