I'm looking for the most beautiful and short way to multiply those types of lists:
a = [True, False, True, False, False] b = [100, 200]
Length of b equals to number of True elements in a
The answer that I need is
[100, 0, 200, 0, 0] here
Are there any simple ways to get that answer?
It looks like element-wise multiplication, but the fact is that the size of the second list is smaller, so common numpy methods don't work without bad code.
Hope, you'll find nice solution
You could do this in
c = np.array(a).astype(int) c[c==1] = b >>> c array([100, 0, 200, 0, 0])
Note If you need the result as a list (based on your desired output), rather than a
numpy array, use