将字符串值转换为整数值

时间:2017-01-25 18:30:16

标签: python string python-2.7 python-3.x integer

有没有"容易"将字母字符串转换为整数值的方法?我知道一种方法可行,但这将非常繁琐。哦,在Python中,我忘了提到它。这就像" ABC" = 123

3 个答案:

答案 0 :(得分:1)

print ([ord (c) - ord ('A') + 1 for c in 'ABC'])

N.B。 Rob的答案更好......(直到' i&#39 ;; =))

答案 1 :(得分:1)

预定义将字母映射到数字的字典:

d = {'A': '1', 'B': '2', 'C': '3', 'D': '4',
     'E': '5', 'F': '6', 'G': '7', 'H': '8',
     'I': '9', 'J': '10', 'K': '11', 'L': '12',
     'M': '13', 'N': '14', 'O': '15', 'P': '16',
     'Q': '17', 'R': '18', 'S': '19', 'T': '20',
     'U': '21', 'V': '22', 'W': '23', 'X': '24',
     'Y': '25', 'Z': '26'}

然后你可以转换为:

int(''.join(d[c] for c in 'ABC'))

答案 2 :(得分:0)

您的问题未明确。实际上有无限的函数可以将'ABC'转换为123,包括这一个:

def letter2number(s):
    return 123

如果你想通过将字母的偏移量的十进制数字连接到字母表中来转换字符串,那么这个可能适合你。请注意,您无法往返该值:24可以是X,也可以是BD

def letter2number(s):
    return int(''.join('%d'%(ord(ch)-ord('A')+1) for ch in s))

assert letter2number('ABC') == 123
assert letter2number('XYZ') == 242526