2011-03-26 68 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

相关问题