所以我得到这个错误:

TypeError: list indices must be integers, not str

指向这行代码:
if snarePattern[i] == '*':

每当我使用我认为简单的Python时
snarePattern = ['-', '*', '-', '*']
for i in snarePattern:
    if snarePattern[i] == '*':
        ...

这是不允许的吗?我不知道什么?
而且,如果有人知道我要用这段代码做什么,你能想出一种更简单的方法来创建和解析这样的简单模式吗??? 我是Python新手。
谢谢你们

最佳答案

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

关于python - Python中的列表迭代,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16137837/

10-10 12:49