所以我收到了这个错误:
TypeError: list indices must be integers, not str
指向这行代码:
if snarePattern[i] == '*':
每当我使用我认为简单的Python
时snarePattern = ['-', '*', '-', '*']
for i in snarePattern:
if snarePattern[i] == '*':
...
这是不允许的?我不知道什么?
而且,如果有人知道我将使用这段代码,你能想到一种更简单的方法来创建和解析这样的简单模式吗?我是Python的新手。
谢谢你们
答案 0 :(得分: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