Другой (возможно, более читабельный?) Однострочный:
>>> [index for (index,(a,b)) in enumerate(zip(A,B)) if a!=b]
[5, 7]
Это сначала объединяет списки вместе:
[(0, 0), (1, 1), (0, 0), (1, 1), (0, 0), (1, 0), (0, 0), (0, 1), (0, 0),
(1, 1), (0, 0), (1, 1), (0, 0), (1, 1), (0, 0)]
А затем прикрепляет индекс к элементам с enumerate()
function:
[(0, (0, 0)), (1, (1, 1)), (2, (0, 0)), (3, (1, 1)), (4, (0, 0)), (5, (1, 0)),
(6, (0, 0)), (7, (0, 1)), (8, (0, 0)), (9, (1, 1)), (10, (0, 0)), (11, (1, 1)),
(12, (0, 0)), (13, (1, 1)), (14, (0, 0))]
Затем он использует довольно стандартное понимание списка для сравнения элементов и создает список индексов, где элементы не совпадают.