簡體   English   中英

檢查子列表是否在大列表中的最快方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM