python3 中包含字符串代码名称到数字代码的列表

List with string code names to numeric codes in python3

我对 Python 很陌生。我有一个名为 'prediction' 的列表,其中包含 LDA 分类问题的结果。 'prediction' 中的元素是字符串,我想将其转换为数值。我是通过蛮力来做的,比如:

aux2 = [0]*len(prediction)
i = 0
for k in prediction:
if k == 'ALA':
    aux2[i] = 1
elif k == 'ARG':
    aux2[i] = 2
elif k == 'ASN':
    aux2[i] = 3
elif k == 'ASP':
    aux2[i] = 4
...
elif k == 'VAL':
    aux2[i] = 18
i = i+1

但我确信有更好的方法来做到这一点。请把我从无知中解救出来!

您可以为此使用字典! 字典使用键来引用某些值;这意味着您可以根据需要为每个字符串分配一个整数值并按如下方式使用它:

translation_dict = {
    'ALA': 1,
    'ARG': 2,
    'ASN': 3,
    'ASP': 4,
    ...
    'VAL': 18
}

aux2 = [0]*len(prediction)
for i, k in enumerate(prediction):
    aux2[i] = translation_dict[k]

您还会注意到我用 enumerate 函数替换了您的计数器 (i)。此函数采用任何迭代器和 returns 一个新迭代器,该迭代器除了提供值外还为您提供索引,从而避免您手动递增 i.