反向遍历列表访问元素索引触发TypeError报错如何解决
错误原因
enumerate() 函数返回的每个迭代元素是 (索引, 元素值) 格式的元组,你调用 reversed(list(enumerate(equation))) 之后遍历得到的 i 就是这类元组,直接把元组作为列表索引传入 equation[i] 自然会触发类型错误。
解决方法
推荐直接解包遍历得到的元组,分开获取索引和对应元素,代码可读性更高:
equation = ['5', '^', '12', '^', '12'] for idx, val in reversed(list(enumerate(equation))): if val == '^': # 此处写你的业务逻辑即可 ...
如果你不想修改遍历的变量定义,也可以手动取元组的第一个元素作为索引访问列表:
equation = ['5', '^', '12', '^', '12'] for i in reversed(list(enumerate(equation))): if equation[i[0]] == '^': ...
内容的提问来源于stack exchange,提问作者starglitter
相关产品推荐
相关产品推荐

