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 に答える