Как заменить элемент в 1D-списке на ноль, сравнивая другой список?

#python

Вопрос:

У меня есть 2 списка A , а именно: B

 A=[1,2,3,4,2,5,6,4,8,9]
 

Где B -список-это индекс A[] элементов, которые я должен иметь

 B=[0,3,5,7,8]
 

Мне нужно заменить элементы A списка нулем, которого нет в списке B (индекс A )

То, что я пытался, это :

 Z=[0 if A.index(x) not in B else x for x in A]
 

но оно вернулось

 [1, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0]
 

Что мне нужно, так это:

 [1,0,0,4,0,2,0,6,4]
 

Комментарии:

1. Ваш ожидаемый результат неверен для условия, о котором вы упомянули.

Ответ №1:

list.index возвращает первый индекс, для которого найдено определенное значение. enumerate пригодится здесь:

 Z = [0 if i not in B else x for i, x in enumerate(A)]