Сравните два списка списков и сохраните только совпадающие элементы, сохраняя структуру - PullRequest
0 голосов
/ 05 июля 2019

Имеются следующие два вложенных списка:

alist = [[1,4,10,2], [4,1,12,10], [5,12,4,10], [5,10,2,4]]

blist = [[2,4,10,9,13,20], [12,9,20,33,Not,15], [3,1,2,7,4,8], [Not,9,8,3,4,5]]

Я пытаюсь сравнить оба списка по списку, сохраняя структуру списка, и сохраняю совпадения только так:

newlist= [[4,10,2], [12], [4], [5,4]]

Заранее спасибо за помощь!

1 Ответ

1 голос
/ 05 июля 2019

Вы можете использовать set.intersection() ( документ ):

Not = object()

alist = [[1,4,10,2], [4,1,12,10], [5,12,4,10], [5,10,2,4]]

blist = [[2,4,10,9,13,20], [12,9,20,33,Not,15], [3,1,2,7,4,8], [Not,9,8,3,4,5]]

new_list = [list(set(i).intersection(j)) for i, j in zip(alist, blist)]
print(new_list)

Печать:

[[2, 10, 4], [12], [4], [4, 5]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...