我正在寻找一个iterable数据结构
可容纳大量物品。理想情况下,所有人使用的内存
列表中的项大于可用RAM:对象
透明地交换磁盘文件,因为他们是访问;
只有一小部分可配置的它们被加载到RAM中
给时间。换句话说,我想看到一些类似C++的{a1}库,但是我只需要一个类似容器的列表。在
此外,数据结构需要允许:存储任意Python对象,添加/删除
元素(按位置或按值),遍历所有
元素,in/__contain__检查,以及(可能)一种快速的方法
选择满足简单属性相等谓词的元素
(例如,x.foo = 'bar')
下面是一个API示例,我想看看:# persist list data to `foo.dat`, keep 100 items in memory
l = FileBackedList('foo.dat', 100)
# normal Python list operations work as expected
l.append('x'); len(l) == 1
l.extend([1, 2, 3])
l.remove('x'); len(l) == 3
l.pop(0); len(l) == 2
2 in l # => True
# there should be at least one way of doing the following
k = [item for item in l if item > 2]
k = filter(l, lambda item: item > 2)
执行不是特别快或者
高效;处理大量对象的能力
有限的记忆是最重要的。在
在我开始推出我自己的实现之前,有没有什么
我已经可以插入我的应用程序的现有库?或者至少
一些代码可以从中获得灵感?在