listutils
- list
衍生物¶
Python的内建 list
是一种非常快速和高效的序列类型,但它可能更适合某些访问模式,例如非顺序插入到大型列表中。 listutils
为这个问题提供了一个纯Python解决方案。
有关使用迭代器和列表的实用程序,请查看 iterutils
。对于a list
-基于的版本 collections.namedtuple
,退房 namedutils
。
- boltons.listutils.BList¶
BarrelList
的别名
- class boltons.listutils.BarrelList(iterable=None)[源代码]¶
这个
BarrelList
是一种list
子类型由许多动态缩放的子列表支持,以提供更好的缩放和随机插入/删除特性。它是建筑的子类型list
并且具有相同的API,支持索引、切片、排序等。如果应用程序要求更高的性能,请考虑 blist module available on PyPI 。这个名字来自库尔特·罗斯,他说这让他想起了桶装搬运工。不知道是怎么回事,但它很像BLIST,所以这个名字留了下来。BLIST当然是指 B-trees 。
- 参数:
iterable -- 列表的初始值的可选迭代。
>>> blist = BList(range(100000)) >>> blist.pop(50000) 50000 >>> len(blist) 99999 >>> len(blist.lists) # how many underlying lists 8 >>> slice_idx = blist.lists[0][-1] >>> blist[slice_idx:slice_idx + 2] BarrelList([11637, 11638])
支持切片,并且可以在列表边界之间很好地工作,返回BarrelList的另一个实例。