self.result.append((k,k1,"节点{}".format(k2),(str(i[j]),str(i[j+2])))) TypeError: list indices must be integers or slices, not str
时间: 2024-03-24 13:36:41 浏览: 66
这个错误通常是由于代码中尝试使用字符串作为列表的索引导致的。在您提供的代码中,`i` 似乎是一个列表,而在 `for j in i` 循环中,`j` 是列表中每个元素的值,而不是该元素的索引。因此,`i[j]` 和 `i[j+2]` 都是非法的,因为 `j` 是一个字符串,而不是整数索引。
如果您想要使用整数索引来访问列表 `i` 中的元素,可以使用 `enumerate()` 函数来获取每个元素的索引值,例如:
```
for idx, val in enumerate(i):
k2 = k2 + 1
k1 = k1 + 1
self.result.append((k, k1, "节点{}".format(k2), (str(i[idx]), str(i[idx+2]))))
if k2 == 2:
# do something
```
在这个代码中,`enumerate(i)` 返回一个迭代器,每次迭代都会返回 `(idx, val)` 元组,其中 `idx` 是元素在列表中的索引,`val` 是元素的值。然后可以使用 `idx` 来访问列表中的元素,而不是使用字符串 `j`。
阅读全文
相关推荐















