Как конвертировать буквы в цифры с помощью Python? - PullRequest
0 голосов
/ 20 октября 2018

У меня есть словарь 'g', и я хочу преобразовать все буквы в числа.

g = { "a" : ["c","e","h","m","k","i"],
      "b" : ["d","f","k","m"]
    }

Я нашел это при переполнении стека:

def alphabet_position_Headcrab(text):
    nums = [str(ord(x) - 96) for x in text.lower() if x >= 'a' and x <= 'z']
    return " ".join(nums)

и этот сПредпочитаю:

def alphabet_position_wvxvw(text):
    result, i = [32, 32, 32] * len(text), 0
    for c in bytes(text.lower(), 'ascii'):
        if 97 <= c < 106:
            result[i] = c - 48
            i += 2
        elif 106 <= c < 116:
            result[i] = 49
            result[i + 1] = c - 58
            i += 3
        elif 116 <= c <= 122:
            result[i] = 50
            result[i + 1] = c - 68
            i += 3
    return bytes(result[:i-1])

Но это работает не для моего словаря, а только для 1-мерного словаря, например:

dic = { "a" : "g", "b" : "f"}

Спасибо за вашу помощь (возможно, ответ очевиден, но я неспециалист по кодированию)

Ответы [ 2 ]

0 голосов
/ 20 октября 2018

Это может помочь вам

for key, value in g.items():
    nums = [str(ord(x) - 96) for x in value if x.lower() >= 'a' and x.lower() <= 'z']
    g[key] = nums
0 голосов
/ 20 октября 2018

Если функции работают для одиночных значений, тогда у вас должна быть возможность отобразить функцию на значения вашего списка

new_g = {k: [alphabet_position(x) for x in v] for k, v in g.items()} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...