In this case, a dictionary is probably what you're looking for.
finposb = {
"2": "a",
...
"9": "h"
}
>>> print(finposb["2"])
a
An advantage of a dictionary is that you may map several keys to the same value, for example if you wanted both "2" and 2 to map to "a", you could say
finposb["2"] = "a" # string
finposb[2] = "a" # numeric
Further, there are two reasonable ways of acquiring your value from a key (such as "2" to "a").
finposb[key] # raise KeyError if key is not in the dictionary
finposb.get(key, None) # default to None if the key is missing
The first is convenient because it throws a useful error and can be certain that the key is not in your dictionary, while the second has many other conveniences, such as being able to return itself if the key is missing.
finposb.get(key, key) # returns key if key does not map to a value
Classically, this type of table is used to look up a character set, such as ASCII where many characters may be stored in a compact way (how else would you express a letter to a computer than as a number?) and later interpreted by a program.
A more modern form of this is called unicode, which can be used to describe a very great number of different characters beyond the "normal" Latin Alphabet.