Python One-Hot кодировать каждые 2 символа в тексте

У меня есть собственный алфавит, так как словарь состоит из 2 букв, ключей и десятичных значений соответственно. Я в основном хочу кодировать каждые 2 символа в тексте, используя этот алфавит. Текст не может выходить за пределы заданного алфавита, поэтому его можно определить вручную. Вот что я сделал до сих пор.

values = {'00' : 0.0, '01': 1.0, '02':2.0, '03':3.0, '04':4.0, '05':5.0, '06':6.0, '07':7.0, '08':8.0, '09':9.0, '0a':10, '0b':11, '0c':12, '0d':13, '0e':14}

sample = '000a'
indexes = [values[ch:ch+2] for ch in range(0,len(sample),2)]

Выход должен был быть 0,010

Тем не менее, я получаю непредсказуемый тип: ошибка типа "кусочек" при запуске этого.

Есть ли другой способ перебирать каждые два элемента в тексте и заменять их значениями в словаре? Или какой оптимальный способ сделать это для текстовых файлов более 20G+?

1 ответ

Решение

Это делает то, что вы описываете в примере:

values = {'00' : 0.0, '01': 1.0, '02':2.0, '03':3.0, '04':4.0, '05':5.0, '06':6.0, '07':7.0, '08':8.0, '09':9.0, '0a':10, '0b':11, '0c':12, '0d':13, '0e':14}

sample = '000a'
indexes = ''.join(str(values[sample[ch:ch+2]]) for ch in range(0,len(sample),2))

Я думаю, что вы пропустили это sample[:] за values ключи...

Другие вопросы по тегам