2011-03-26 37 views
0

我是新來的蟒蛇,對不起,如果有什麼問題。在Python中與集合相交的最有效方式是什麼?

我想交叉幾個集合(20 o 30)與他們的大量元素。

我一直在閱讀和知道集合類似於哈希表(使用相同的原理)。 集合有相交的方法,我一直在嘗試它,並且工作得很好。

但是,想有一個有經驗的意見。

你會怎麼做?

問題再次出現。 20或30個集合(可以設置,元素不重複)並且想要使它們相交。不要想象如何創建收藏(即插入無關緊要)

非常感謝!

+2

這有什麼錯用套? python中的內置數據結構通常非常高效。除非你的收藏足夠大,以至於你的內存不足,'set'似乎正是你所需要的,在這種情況下...... – 2011-03-26 18:59:38

+0

沒有什麼不對!其實,這就是我這樣做的方式。但我真的不知道這是做這件事的最好方法! – santiagobasulto 2011-03-26 19:41:04

回答

1
result = set1.intersection(set2, set3, set4, ...) 

http://docs.python.org/library/stdtypes.html

+1

我想知道,在大多數實際情況下,'set1.intersection(sorted((set2,set3,...),key = len))更好嗎?或者,也可以選擇最小的,而不是完全分類。 – 2011-03-26 19:06:33

+0

您可以自由地在應用程序級別上執行這種優化 – 2011-03-26 19:08:24

+0

當然,如果我們足夠關心,我們可以檢查某個特定的Python實現是否已經做了類似的事情。 – 2011-03-26 19:11:16

相關問題