Python一键式编码文本中的每2个字符

时间:2018-07-09 19:51:54

标签: python dictionary text slice one-hot-encoding

我有一个自定义字母,因为字典由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

但是,通过运行此命令,我得到不可散列的类型:'sl​​ice'

是否有另一种方法可以遍历文本中的每两个项目并将其替换为字典中的值?还是对超过20G +的文本文件执行此操作的最佳方法是什么?

1 个答案:

答案 0 :(得分: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 ...