3

以下のコード例では、事前定義された数値のリストが、ループしている iterable に一致するか一致しないかを示したいと考えています。これは私の問題の簡単な例です。

残念ながら、以下のコードは期待どおりに動作しません。おそらく単純なものが欠けています。私の実際のアプリケーションでは、これはさまざまな出力を持つ非常に大きな 1 次元配列で行われますが、これは簡単に再現できる単純なテキストの方法でそれを示しています。

Python 2.7.5 を使用していることも付け加えておく必要があるかもしれません。

match = [1, 3, 4]
volumes=10

def vector_covariates(match, volumes):
    for i in range(volumes):
        if i == match:
            print "[*]"
        else:
            print "[ ]" 

vector_covariates(match, volumes)

実行すると、次のように出力されます。

 [ ]
 [ ]
 [ ]
 [ ]
 [ ]
 [ ]
 [ ]
 [ ]
 [ ]
 [ ] 

「正しい」出力は

 [*]
 [ ]
 [*]
 [*]
 [ ]
 [ ]
 [ ]
 [ ]
 [ ]
 [ ]
4

3 に答える 3

5

使用しinない==:

if i in match:

そのままでは、(数値) の値をリストにチェックしていてi、それら 2 つが同じになることはありません!

于 2013-09-30T14:00:38.263 に答える
3

iint値ですmatchが、 はlistです。それらが互いに等しくなることはありません。

in次のように代わりに使用==します。

if i in match:
    print "[*]"
于 2013-09-30T14:03:16.667 に答える
0

整数iをリストのmatchと比較しています。もちろん、それらは平等ではありません。で使ってみてください

于 2013-09-30T14:01:35.100 に答える