2017-01-06 8 views
-3

私はリストの二つのリストがあります:別のリストに含まれていない要素をあるリストから削除するにはどうすればよいですか?

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

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

を私はARR1に含まれているとARR2からそれらの要素を削除していないARR2からのどの要素をチェックする必要があります。

その結果がでなければなりません:それはARR2で削除して

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

6と8は、ARR1に含まれていません。

どうすればよいですか?

+0

"リスト交差点" をもう一度検索してください - E、G、http://stackoverflow.com/questions/642763/python-intersection-of-two-lists – DNA

+0

でも'7 'は' arr1'にはありません、 'arr2'にはどのように存在していますか?親切にあなたの投稿を編集し、[mcve]を追加してください。 See [ask]。 –

答えて

1
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] 
関連する問題