【发布时间】:2022-11-18 05:45:18
【问题描述】:
我试图遍历此列表并附加括号的索引,但它返回了错误的索引。
代码:
t = "(= 2 (+ 4 5))"
a = []
for each in t:
if (each == '(') or (each == ')'):
a.append(t.index(each))
else:
pass
print(t)
print(a)
结果:
(= 2 (+ 4 5))
[0, 0, 11, 11]
它应该是:
(= 2 (+ 4 5))
[0, 5, 11, 12]
【问题讨论】:
-
list.index()将始终返回第一次出现的索引 -
不用 foreach 循环,只需使用 for 循环来跟踪您当前正在查看的索引。
-
a = [idx for idx, ch in enumerate(t) if ch in '()'] -
for循环迭代良好,事实证明某物在t中为每个(和)添加了a。
标签: python string list for-loop append