Если вы хотите специально использовать побитовый оператор &
, то вы можете использовать functools.reduce
с zip
:
>>> from functools import reduce
>>> l = [[True, True, True, False], [False, True, True, False], [False, False, True, True]]
>>> [reduce(lambda x, y: x & y, lst) for lst in zip(*l)]
[False, False, True, False]
Мы также можно создать собственную мини-функцию для замены lambda
:
>>> def bitwise_and(x, y):
... return x & y
...
>>> [reduce(bitwise_and, lst) for lst in zip(*l)]
[False, False, True, False]
или просто использовать модуль operator
, как показано в ответе @ schwobaseggl .