一致的 char 到 int

Consistent char to int

我正在实现 RNN 模型,我需要根据字典将所有字符转换为整数,如下所示。

charset={'!',
 '#',
 '(',
 ')',
 '+',
 '-',
 '/',
 '1',
 '2',
 '3',
 '4',
 '=',
 'B',
 'C',
 'E',
 'F',
 'H',
 'I',
 'N',
 'O',
 'P',
 'S',
 '[',
 '\',
 ']',
 'l',
 'r'}

我使用下面的方法根据字典将charset转换成整数

char_to_int = dict((c,i) for i,c in enumerate(charset))

这给了我以下输出。

{'2': 0, 'F': 1, '-': 2, 'O': 3, '1': 4, 'E': 5, '4': 6, '!': 7, 'H': 8, 'S': 9, '/': 10, '\': 11, '#': 12, 'l': 13, '=': 14, 'P': 15, 'C': 16, '+': 17, 'r': 18, 'B': 19, '(': 20, ')': 21, ']': 22, '3': 23, '[': 24, 'I': 25, 'N': 26}

现在我关闭我的 Jupyternotebook 并再次加载数据并再次 运行 以上两行代码。这次映射不同如下。

{']': 0, '\': 1, '(': 2, '=': 3, '!': 4, 'F': 5, '3': 6, 'S': 7, '4': 8, 'N': 9, '+': 10, 'l': 11, 'H': 12, 'E': 13, 'C': 14, 'I': 15, '-': 16, 'B': 17, ')': 18, 'P': 19, '[': 20, 'r': 21, '1': 22, '/': 23, '2': 24, '#': 25, 'O': 26}

每次 运行 我怎样才能保持一致 char_to_int

set Python 中的对象没有顺序。如果您将 charset 设为 list 而不是 set,那么您的结果将在运行之间保持一致。