Суммировать элементы в списке Python, только если элементы в отдельном логическом списке имеют значение True

У меня есть два списка Python,

A = [ 1, 2, 3, 4, 5 ]
B = [ True, False, False, True, True ]

списки A и B имеют одинаковую длину.

Я хочу суммировать только элементы в A, которые соответствуют Истинным элементам в B. Я знаю, что могу сделать это с помощью чего-то вроде:

sum([A[x] for x in xrange(len(A)) if B[x]])

но мне было интересно, было ли более элегантное решение, которое не включало бы циклический просмотр элементов в каждом списке?