-2
list_1 = [[1, 2, 3], [100, 13, 17], [5, 14, 29], [17, 55, 1000]]
list_2 = [1, 100]
返回列表應包含的list_1
子表上提取子列表,如果從list_2
存在於list_1
我有Python列表中的列表。我想以另一種新的列表
子列表ATLEAST一個元素尋找類似的結果[[1, 2, 3], [100, 13, 17] ]
如果list_2 = [5, 13, 17, 55]
:
[[100, 13, 17], [5, 14, 29],[17, 55, 1000]]
如果list_2 = [29]
:
[[5, 14, 29]]
我正在尋找一種最快的方式來實現這一目標,因爲大部分時間,我的list_1
的長度超過500萬。
是否有任何網絡庫函數來實現這個功能?
重複掃描list_2以測試成員身份可能比構建一個包含list_2的所有元素一次的集合並檢查集合中的成員資格:許多比較,嚴重縮放list_2大小而不是單個哈希查找。 –
@LorenzoGatti如果'list_2'有很多*元素*轉換爲set **確實有意義。否則,我的眼中沒有任何好處。 *重複*位我不明白tbh。 –
對於需要測試list_2成員資格的list_1元素的每個元素,將從頭開始掃描list_2。工作與list_1和list_2的元素數量的乘積成比例,而不是list_1的元素數量。 –