Czy wyniki nie powinny być takie same? Nie rozumiem.Obsługa list logicznych w pythonach
[True,False] and [True, True]
Out[1]: [True, True]
[True, True] and [True,False]
Out[2]: [True, False]
Czy wyniki nie powinny być takie same? Nie rozumiem.Obsługa list logicznych w pythonach
[True,False] and [True, True]
Out[1]: [True, True]
[True, True] and [True,False]
Out[2]: [True, False]
Nie, ponieważ nie jest to sposób, w jaki działa and
w Pythonie. Po pierwsze nie zawiera osobno elementów listy. Po drugie, operator and
działa między dwoma obiektami i jeśli jeden z nich jest fałszywy (evaluated as False) zwraca to i jeśli oba są prawdziwe, zwraca drugi. Oto przykład:
>>> [] and [False]
[]
>>>
>>> [False] and []
[]
>>> [False] and [True]
[True]
x and y
: jeślix
jest fałszywe, a następniex
, innyy
Jeśli chcesz zastosować operacje logiczne na wszystkie listy par można użyć numpy tablice :
>>> import numpy as np
>>> a = np.array([True, False])
>>> b = np.array([True, True])
>>>
>>> np.logical_and(a,b)
array([ True, False], dtype=bool)
>>> np.logical_and(b,a)
array([ True, False], dtype=bool)
1. Tutaj ponieważ masz do czynienia z list pustą listę zostaną ocenione jako Fałsz
[a i b dla a, b w zip (x, y)], dzięki, że również działa – Tang
Co chcesz zrobić? – SubliemeSiem
Co? Czy ta lista nie powinna mieć "wartości"? – ForceBru
[a i b dla a, b w zip (x, y)], to właśnie próbuję zrobić. – Tang