尝试下标时无法下标的错误

时间:2019-03-26 22:30:24

标签: python python-3.x typeerror

我们从用户输入的仅包含小写字母的字符串开始

for letter in encoded_input:
        if letter == ' ':
            decoded_output.append(' ')
            continue

        decoded_output.append(map_input(letter,tpos1,tpos2,tpos3))

然后传递给该功能

def map_input(value,r1,r2,r3,wr=wiring,rf=reflector):#Use reflector as well
    pass1 = rf[r3[r2[r1[wr[ALPH.index(value)]]]]]
    r1,r2,r3 = reverse_rotors(r1,r2,r3)
    return ALPH[wr[r1[r2[r3[pass1]]]]]

其中所有传递的变量都是以唯一排列方式包含数字0-25的列表。

问题

但是,当我这样做时,我得到一个错误提示

pass1 = rf[r3[r2[r1[wr[ALPH.index(value)]]]]]
TypeError: 'int' object is not subscriptable

我错过了明显的东西还是发生了微妙的事情?值的确是ALPH中的小写字母(这只是一个包含字母的列表)。

1 个答案:

答案 0 :(得分:2)

该错误表示您尝试执行foo[bar],其中foo是整数。像这样

x = 1
x[0]

将重现该错误。 因此,在这里,反射器,字母,tpos1,tpos2,tpos3或接线之一是整数。