Search code examples
python-3.xlistarraylistnested-listsmultiplication

how to multiply nested list with list?


i have:

dataA=[[1,2,3],[1,2,5]]
dataB=[1,2]

I want to multiply index [0] dataA with index [0] dataB, and index [1] dataA with index [1] dataB, how to do it.

I tried it, but the results didn't match expectations

dataA=[[1,2,3],[1,2,5]]
dataB=[1,2]

tmp=[]
for a in dataA:
    tampung = []
    for b in a:
        cou=0
        hasil = b*dataB[cou]
        tampung.append(hasil)
        cou+=1
    tmp.append(tampung)
print(tmp)

output : [[1, 2, 3], [1, 2, 5]] expected output : [[1,2,3],[2,4,10]]

Please help


Solution

  • List-expression are sth wonderful in Python.

    result = [[x*y for y in l] for x, l in zip(dataB, dataA)]
    

    This does the same like:

    result = []
    for x, l in zip(dataB, dataA):
        temp = []
        for y in l:
            temp.append(x * y)
        result.append(temp)
    
    result
    ## [[1, 2, 3], [2, 4, 10]]