我需要创建一个查找表,其中A = 10且Z = 35(B = 11,C = 12等等),在python中实现此目的的最简单方法是什么?我知道必须有一个非常简单的方法来实现它,似乎无法找到它。
答案 0 :(得分:11)
对于查找表,您可以使用dict
:
d = { 'A' : 10, 'Z' : 35 } # etc..
然而在这种情况下,似乎有一个简单的逻辑规则来计算结果,所以你可以用一个简单的算法来代替查找表:
def letterToNumber(c):
if not 'A' <= c <= 'Z':
raise ValueError('invalid character: ' + c)
return ord(c) - ord('A') + 10
def numberToLetter(x):
if not 10 <= x <= 35:
raise ValueError('invalid number: ' + x)
return chr(x - 10 + ord('A'))
答案 1 :(得分:7)
您不需要查找表 - 表达式
chr(c) - 54
(用大写字母c
beinig)就可以了。
答案 2 :(得分:4)
我同意查找表是不必要的,但这里只有一个
>>> import string
>>> x = dict(zip(string.uppercase[:26],range(10,36)))
>>> x['A']
10
>>> x['Z']
35
答案 3 :(得分:0)
我会采用直截了当的方法:
import string
def make_lookup_table():
"make a lookup table where 'A' -> 10, 'B' -> 11, ..., 'Z' -> 35"
lookup_table = {}
value = 10
for letter in string.uppercase[:26]:
lookup_table[letter] = value
value += 1