-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的元素数量。 –