I have a nested list that looks something like this:
JavaScript
x
3
1
list1=[[42, 432, 34, 242], [32, 68, 72, 90], [46, 78, 22, 24]]
2
3
and a flat list that looks something like this:
JavaScript
1
2
1
list2=[2,4,2,6]
2
How do I divided each consecutive element in list1 by each consecutive element in list2 (e.g. 42/2, 432/4, 34/2, 242/6) to get an output like this:
JavaScript
1
2
1
result=[[21,108,17,40],[16,17,36,15],[23,19,11,4]]
2
I have tried doing this:
JavaScript
1
3
1
for (item1, item2) in zip(list1, list2):
2
avg_list.append(item1/item2)
3
but since list1 is a nested list there was some error in the code.
Advertisement
Answer
Here is a possible solution:
JavaScript
1
5
1
list1 = [[42, 432, 34, 242], [32, 68, 72, 90], [46, 78, 22, 24]]
2
list2 = [2,4,2,6]
3
4
result = [[int(x / y) for x, y in zip(lst, list2)] for lst in list1]
5
This is the output:
JavaScript
1
2
1
[[21, 108, 17, 40], [16, 17, 36, 15], [23, 19, 11, 4]]
2