Supposons que j'ai deux listes:Python opérations booléennes sur les listes - résultats incohérents
>>> 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]
Je fais ce qui suit:
>>> 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]
Si pas la bonne réponse soit comme indiqué ci-dessous?
[False, True, True, True, True, True, False, True, False, True, False, True]
Je reçois aussi des réponses incorrectes avec 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]
I testé 1 et de 0 avec des résultats impairs:
>>> 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]
Qu'est-ce que je fais mal?
essayez d'enrouler vos listes dans un appel booléen comme 'bool ([False])' pour comprendre pourquoi cela se produit –
Comme le suggèrent les réponses, 'or' ne fonctionne pas de cette façon. Cependant 'numpy.logical_or' fonctionne comme ceci, donc peut vous être utile. https://docs.scipy.org/doc/numpy/reference/generated/numpy.logical_or.html – Stuart