[英]The fastest way to check if the sub-list exists on the large list
假设我有一个大约1000000个子列表的列表list1
。 接下来,我想检查给定元素a
(它是一个子列表)是否存在于列表中。 通常,只要使用if a in list1
检查就足够了,但是对于较大的列表,它的运行速度非常慢。 还有另一种方法吗?
由于您声明可以使用元组,因此建议您将每个子列表都做成元组,然后再制作一set
这些元组。 然后,搜索set
将是O(1)查找。 虽然该集合的初始构造可能会很昂贵,但是如果您进行多次查找,则值得这样做。
>>> set_of_sublists = {tuple(sublist) for sublist in orignal_list}
>>> tuple(sublist_to_check_for_membership) in set_of_sublists
我想承认@BrettBeatty最初也给出了此答案,但随后将其删除。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.