擅长:python、mysql、java
<p>为什么不使用ZODB中的<a href="http://www.zodb.org/documentation/guide/modules.html#btrees-package" rel="nofollow noreferrer">BTree</a>库提供的persistent set类呢。有4个这样的班级。IITreeSet和IOTreeSet管理整数集,OITreeSet和OOTreeSet管理任意对象集。它们分别对应于四个BTree类:IIBTree、IOBTree、OIBTree和OOBTree。与Python内置的set实现相比,它们的优势在于它们的快速查找机制(到底层BTree的thanx)和持久性支持。在</p>
<p>下面是一些示例代码:</p>
<pre><code>>>> from BTrees.IIBTree import IITreeSet, union, intersection
>>> a = IITreeSet([1,2,3])
>>> a
<BTrees._IIBTree.IITreeSet object at 0x00B3FF18>
>>> b = IITreeSet([4,3,2])
>>> list(a)
[1, 2, 3]
>>> list(b)
[2, 3, 4]
>>> union(a,b)
IISet([1, 2, 3, 4])
>>> intersection(a,b)
IISet([2, 3])
</code></pre>