You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python for循环迭代异常:括号索引收集结果不符预期

问题分析与解决

你的代码问题出在使用t.index(each)获取括号索引上——这个方法只会返回字符串中第一个匹配字符的位置。比如遍历到第二个(时,t.index('(')还是返回第一个(的索引0;遍历到最后一个)时,t.index(')')还是返回第一个)的索引11,这就导致结果重复且错误。

修正后的代码

t = "(= 2 (+ 4 5))"
a = []
for idx, char in enumerate(t):
    if char in ('(', ')'):
        a.append(idx)
print(t)
print(a)

说明

用enumerate(t)可以同时遍历字符串的索引和对应字符,遇到括号时直接将当前索引idx加入列表,就能精准收集每个括号的位置,运行结果就是你预期的:

(= 2 (+ 4 5))
[0, 5, 11, 12]

内容的提问来源于stack exchange,提问作者Adras Baros

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 00:35:23