如果list1中的元素存在或列表2中存在公共元素,我想從list1的元組中創建一個新的元組列表。在Python中從兩個元組列表中選擇元組,如果兩個列表都包含公共元素
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
也解釋一下,「大型數據集中的某種失敗」是什麼意思?你能給個例子嗎? – 2013-02-27 08:48:27