2

所以我得到这个错误:

TypeError: list indices must be integers, not str

指向这行代码:

if snarePattern[i] == '*':

每当我使用我认为简单的 Python 时

snarePattern = ['-', '*', '-', '*']
for i in snarePattern:
    if snarePattern[i] == '*':
        ...

这是不允许的吗?我不知道什么?

而且,如果有人知道我要使用这段代码去哪里,你能想出一种更简单的方法来创建和解析这样的简单模式吗???我是 Python 新手。

多谢你们

4

1 回答 1

13

for i in snarePattern:遍历每个项目而不是每个索引:

>>> snarePattern = ['-', '*', '-', '*']
>>> for c in snarePattern:
        print c


-
*
-
*

您可以将其更改为

for i in range(len(snarePattern)):

如果你真的需要它,但看起来你不需要,只需检查一下c == '*'

通过索引的更好方法是

for i, c in enumerate(snarePattern):  # i is each index, c is each character
于 2013-04-22T00:47:02.607 回答