用于计算字母数字的Python代码

Python code for calculating number of an alphabet

我需要找出一个字母表在字母范围内的数字,即A=1,B=2,C=3….所以如果我得到了,那么返回值应该是1

是否在python(inbuilt)中提供了一个较短的方法来查找它,而不是声明一个包含26个字母的字典,其中包含它们所尊重的值?

如果您知道这样一个函数,请帮助…..


使用序号()

1
2
3
>>> c = 'f'
>>> ord(c) - ord('a') + 1
6

如果希望"f"和"f"都返回6,请使用lower()。

1
2
3
>>> c = 'F'
>>> ord(lower(c)) - ord('a') + 1
6

您可能还对chr()感兴趣

1
2
3
>>> c = 'f'
>>> chr(ord(c) + 1)
'g'


公正:

1
ord(c)%32

它可以处理上下两种情况。


如果只需要a到z,则可以使用ORD:

1
ord(c) - ord('A') + 1

DR

1
2
def lettertoNumber(letter):
    return ord(letter.upper()) - 64

冗长的解释

ord(char)返回该字符的Unicode编号,但我们正在查找a = 1, b = 2, c = 3

但在Unicode中,我们得到了A = 65, B = 66, C = 67

然而,如果我们从所有这些字母中减去64,我们得到a = 1, b = 2, c = 3。但这还不够,因为我们也需要支持小写字母!

由于是小写字母,我们需要使用.upper()将字母变为大写,这样它就可以自动使用ord(),而结果不大于26,这就给了我们tl;dr部分中的代码。


函数ORD("a")将返回当前文本编码中"a"的数值。您可以这样做,然后做一些简单的数学运算,将其转换为1、2、3类型的映射。


1
2
3
>>> alphadict = dict((x, i + 1) for i, x in enumerate(string.ascii_lowercase))
>>> alphadict['a']
1