Python 如何从一个列表中删除不包含在另一个列表中的元素?

Python 如何从一个列表中删除不包含在另一个列表中的元素?,python,python-2.7,Python,Python 2.7,我有两份清单: arr1 = [[1,2,3], [2,5,1,1], [3,1,1]] arr2 = [[2,3,6,1], [8,1,3], [5,5,6]] 我需要检查arr2中哪些元素不包含在arr1中,并从arr2中删除这些元素 因此,结果必须是: arr2 = [[2,3,1], [1,3], [5,5]] 6和8不包含在arr1中,因此它在arr2中被删除 怎么做 arr1 = [

我有两份清单:

arr1 = [[1,2,3],
        [2,5,1,1],
        [3,1,1]]

arr2 = [[2,3,6,1],
        [8,1,3],
        [5,5,6]]
我需要检查arr2中哪些元素不包含在arr1中,并从arr2中删除这些元素

因此,结果必须是:

arr2 = [[2,3,1],
        [1,3],
        [5,5]]
6和8不包含在arr1中,因此它在arr2中被删除

怎么做

arr1 = [[1, 2, 3],
        [2, 5, 1, 1],
        [3, 1, 1]]

arr2 = [[2, 3, 6, 1],
        [8, 1, 3],
        [7, 5, 6]]

set1 = set(sum(arr1, []))
print('Elements found in arr1:')
print(set1)

arr3 = [[x for x in sub if x in set1]
        for sub in arr2]

print('Sublists of arr3:')
for sub in arr3:
    print(sub)
输出:

Elements found in arr1:
set([1, 2, 3, 5])
Sublists of arr3:
[2, 3, 1]
[1, 3]
[5]

尝试搜索列表交叉点-例如,甚至7不在arr1中,它如何在arr2中出现?敬请发表您的帖子,并添加一个。看见