私は二つのリストがあるとします。Pythonのブール演算 - 矛盾した結果
>>> y
[False, False, True, False, True, False, False, True, False, True, False, False]
>>> z
[False, True, True, True, True, True, False, False, False, False, False, True]
それから私は、次のようにします。下図のように
>>> y or z
[False, False, True, False, True, False, False, True, False, True, False, False]
>>> z or y
[False, True, True, True, True, True, False, False, False, False, False, True]
は正解はすべきではありませんか?
[False, True, True, True, True, True, False, True, False, True, False, True]
私もand
と間違った答えを得る:
>>> y and z
[False, True, True, True, True, True, False, False, False, False, False, True]
>>> z and y
[False, False, True, False, True, False, False, True, False, True, False, False]
私は奇妙な結果と1と0をテストした:私は間違って
>>> y=[0,0,0,0,0]
>>> z=[1,1,1,1,1]
>>> y or z
[0, 0, 0, 0, 0]
>>> z or y
[1, 1, 1, 1, 1]
>>> y and z
[1, 1, 1, 1, 1]
>>> z and y
[0, 0, 0, 0, 0]
何をしているのですか?
これがなぜ起こるのかを理解するには、bool([False])のようなbool呼び出しでリストをラップしてみてください。 –
答えが示すように、 'または'はこのようには動作しません。しかし、 'numpy.logical_or'はこのように動作しますので、あなたにとって役に立つかもしれません。 https://docs.scipy.org/doc/numpy/reference/generated/numpy.logical_or.html – Stuart