python - 尝试下标时出现不可下标错误
问题描述
我们从只包含小写字母的用户输入字符串开始
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
我错过了明显的事情还是发生了一些微妙的事情?Value 在 ALPH 中确实是一个小写字母(它只是一个包含字母表的列表)。
解决方案
该错误意味着您尝试执行foo[bar]
where foo
is an integer。像这样的东西
x = 1
x[0]
将重现错误。所以在这里,反射器、字母、tpos1、tpos2、tpos3 或接线之一是整数。
推荐阅读
- arrays - 如何确定我的变量是对象还是带有树枝的数组?
- javascript - 请求失败返回代码 400。截断的服务器响应 - Google 脚本
- windows - 命令“git status”导致“分段错误”
- wordpress - 使用 comment_post_redirect WordPress 过滤器重定向会导致错误
- html - Apache2:当文件位于另一个文件夹中时,CSS未加载
- typescript - 在打字稿中实现 DFS
- java - 使用 apache poi 基于给定工作表名称从具有多个工作表的 xlsx 文件中提取文本
- r - 在 HMS 中添加持续时间
- excel - 获取包含重复项的前 10 名列表
- javascript - 如何从底部平滑扩展 div 到视口的 85%?