Вы можете использовать zip () для создания словаря поиска.
word = "Hello world"
encoding = []
charachter = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r",
"s","t","u","v","w","x","y","z",""]
number = [0,2300,2,5,9,7,10,34,876,23,125,432,567,103,104,10234,102435,332,7654,12435,
65434,12121,104693,130694,120357,12346,124546324]
mapping = {k:v for k,v in zip(charachter,number)} # or dict(zip(...))
enc = [mapping.get(c, c) for c in word.lower()] # use character as default if not mapped
print(enc) # [34, 9, 432, 432, 104, ' ', 104693, 104, 332, 432, 5]
Я решил использовать строчные буквы (и переместил их в обычную строку, а не в список строк).с одной строкой).
Если символ не отображается, он будет использовать его вместо числа (например, пробел).
Вы можете создать из него строку, разделенную пробеломс:
s = ' '.join(map(str,enc))
print( s )
Вывод:
34 9 432 432 104 104693 104 332 432 5
См. Почему dict.get (ключ) вместо dict [ключ]? для dict.get()