Python实现字母数值映射:小写1-26、大写27-52的最短方法
实现字母到指定数值映射的最短Python代码
要完成小写字母a-z映射为1-26、大写字母A-Z映射为27-52的需求,最短的Python实现是借助ord()函数结合列表推导式,一行代码就能搞定:
[ord(c)-96 if c.islower() else ord(c)-38 for c in ['a','B','h','R']]
原理说明
ord(c)用于获取字符的ASCII值:其中a的ASCII值是97,A是65- 小写字母计算逻辑:
ord(c)-96→ 97-96=1,对应a→1,以此类推到z→26 - 大写字母计算逻辑:
ord(c)-38→ 65-38=27,对应A→27,以此类推到Z→52
如果需要做成可复用的形式,也能写得非常简洁:
f=lambda c:ord(c)-96 if c.islower() else ord(c)-38; print([f(c) for c in ['a','B','h','R']])
运行上述代码,输出结果均为[1,28,8,44],完全匹配预期。
内容的提问来源于stack exchange,提问作者jkhan_prog
相关产品推荐
相关产品推荐

