在python中将字母数字字符串转换为数字字符串

在python中将字母数字字符串转换为数字字符串,python,string,alphanumeric,Python,String,Alphanumeric,我有一个字母数字作为字符串“4525ABT2”,我试图“翻译”成一个数字。我尝试了很多方法,聪明、愚蠢、冗长,然后到处寻找(我在这里找到了Java的解决方案,但它在python中不起作用。将所有字符都改为数字的解决方案也不起作用)。 我最后一次尝试是这样的 for i in alpha: alpha1 = alpha.replace("A" or "B" or "C", "2") alpha2 = alpha1.replace("D" or "E" or

我有一个字母数字作为字符串“4525ABT2”,我试图“翻译”成一个数字。我尝试了很多方法,聪明、愚蠢、冗长,然后到处寻找(我在这里找到了Java的解决方案,但它在python中不起作用。将所有字符都改为数字的解决方案也不起作用)。 我最后一次尝试是这样的

for i in alpha:    
        alpha1 = alpha.replace("A" or "B" or "C", "2")
        alpha2 = alpha1.replace("D" or "E" or "F", "3")
        alpha3 = alpha2.replace("G" or "H" or "I", "4")
        alpha4 = alpha3.replace("J" or "K" or "L", "5")
        alpha5 = alpha4.replace("M" or "N" or "O", "6")
        alpha6 = alpha5.replace("P" or "Q" or "R" or "S", "7")
        alpha7 = alpha6.replace("T" or "U" or "V", "8")
        alpha8 = alpha7.replace("W" or "X" or "Y" or "Z", "9")

phone = str(alpha8)
return phone

提前谢谢

如果您的替换品大小相同,则会更容易,但这应该是可行的:

replist = ["","","ABC", "DEF", "GHI", "JKL", "MNO", "PQRS", "TUV", "WXYZ"]

for i,v in enumerate(replist):
    for l in v:
        alpha = alpha.replace(l,str(i))
输入:“AHK62ZT”

输出:“2456298”

使用适当的工具:

>>> s = "4525ABT2"
>>> table = str.maketrans('ABCDEFGHIJKLMNOPQRSTUVWXYZ',
                          '22233344455566677778889999')
>>> s.translate(table)
'45252282'

提供一个指向您提到的Java解决方案的链接可能会帮助其他人更好地理解您到底想做什么。您是对的。我应该考虑一下。我找不到更长的帖子,但下次-可以。这仍然是一个糟糕的解决方案,因为替换字符串中的字符(在循环中,不是更少)非常昂贵。@hop哦,是的,你的解决方案要好得多,我只是想提供一个版本,它使用了与OPs最初尝试相同的基本原则。