I have two lists of lists with same shape.
list1 = [[1,2,3], [], [4,5], []]
list2 = [[1,2], [7], [4,5], []]
I need this list of lists:
[[1,2], [], [4,5], []]
How I can get it?
P.S.: These topics didn't help me:
I have two lists of lists with same shape.
list1 = [[1,2,3], [], [4,5], []]
list2 = [[1,2], [7], [4,5], []]
I need this list of lists:
[[1,2], [], [4,5], []]
How I can get it?
P.S.: These topics didn't help me:
 
    
    Assume each list in list1 and list2 contains only distinct elements and you do not care about the ordering of the elements in output, you can use set intersection to help you:
output = [list(set(l1) & set(l2)) for l1, l2 in zip(list1, list2)]
 
    
    Loop through and use sets:
list1 = [[1,2,3], [], [4,5], []]
list2 = [[1,2], [7], [4,5], []]
intersections = [list(set(s1)&set(s2)) for s1, s2 in zip(list1, list2)]
outputs:
[[1, 2], [], [4, 5], []]
 
    
    Get each sub-list by index of the shorter list.
[list(set(list1[x]) & set(list2[x])) for x in range(min(len(list1), len(list2)))]
# [[1, 2], [], [4, 5], []]
This will result in a list with the same length as the shortest input.
 
    
    here it is:
list1 = [[1,2,3], [], [4,5], []]
list2 = [[1,2], [7], [4,5], []]
new_list = []
for i in range(len(list1)):
    inter = [x for x in list1[i] if x in list2[i]]
    new_list.append(inter)
print(new_list)
output:
[[1, 2], [], [4, 5], []]
