list1の要素がlist2に存在するか、共通している場合は、list1のタプルからタプルの新しいリストを作成したいと思います。
list1 = [('We', 'all'), ('all', 'live'), ('live', 'in'), ('in', 'a'),
('a', 'yellow'), ('yellow', 'submarine.')]
list2 = [('A', 'live'), ('live', 'yellow'), ('yellow', 'submarine'),
('submarine', 'lifeform'), ('lifeform', 'in'), ('in', 'a'),
('a', 'sea.')]
期待される出力=[('live', 'in'), ('in', 'a'), ('a', 'yellow')]
私のコードは以下のとおりです。この場合は機能しますが、大きなデータセットではどういうわけか失敗します。
All_elements_set1 = set([item for tuple in list1 for item in tuple])
All_elements_set2 = set([item for tuple in list2 for item in tuple])
common_set = All_elements_set1 & All_elements_set2
new_list = [(i,v) for i,v in list1 if i (in common_set and v in common_set)]
print new_list