繁体   English   中英

类似于Python的boost :: multi_index

[英]Something like boost::multi_index for Python

我已经开始在C ++中欣赏了很多boost :: multi_index。 碰巧我很乐意在Python中使用类似的东西; 用于处理来自数字密集型应用程序的数据的脚本。 Python有这样的东西吗? 我只是想确定它不存在,然后我会尝试自己实现它。 对我来说不会做的事情:

  • 在Python中包装boost :: multi_index。 它根本无法扩展。

  • 在内存中使用sqlite3。 这很难看。

由于python集合只存储对象的引用,而不存储对象本身,因此将一个集合与多个索引方案和只有多个集合之间的区别并不大。

例如,您可以对数据进行多次操作,每次使用不同的键来引用它们。

为了回答你在Python中是否存在类似事物的问题,我会说不。

Boost.MultiIndex的一个有用特性是可以就地修改元素(通过replace()或modify())。 Python的本机字典不提供这样的功能,并且要求密钥是不可变的。 我还没有看到其他允许更改密钥的实现。 所以在这个特定领域,没有与Python中的Boost.MultiIndex类似的东西。

如果您只需要多个静态数据视图,那么我同意Radomir Dopieralski。 您可以在自己的类中包装多个dicts,以提供统一的API以确保不同视图之间的同步。 我不知道“性能感知转换”是什么意思,但如果你在谈论插入/删除操作的计算复杂性,即使使用Boost.MultiIndex,“将元素插入到multi_index_container中也会简化为一个简单的组合对每个指数进行基本插入操作,类似地删除。“

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM