Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类似于Python的boost::multi_索引 我已经开始体会到了很多的好处:C++中的多索引。碰巧我很乐意在Python中使用类似的东西;用于处理来自数值密集型应用程序的数据的脚本。Python有这样的东西吗?我只是想确定它不存在,然后我会尝试自己实现它。对我来说不合适的事情:_C++_Python_Data Structures_Boost - Fatal编程技术网

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

类似于Python的boost::multi_索引 我已经开始体会到了很多的好处:C++中的多索引。碰巧我很乐意在Python中使用类似的东西;用于处理来自数值密集型应用程序的数据的脚本。Python有这样的东西吗?我只是想确定它不存在,然后我会尝试自己实现它。对我来说不合适的事情:,c++,python,data-structures,boost,C++,Python,Data Structures,Boost,在Python中包装boost::multi_索引。它根本无法扩展 在内存中使用sqlite3。它很难看 由于python集合只存储对对象的引用,而不存储对象本身,因此一个集合具有多个索引方案与多个集合之间没有太大区别 例如,您可以在数据中使用多个dict,每个dict使用不同的键来引用它们。要回答您的问题,即Python中是否存在类似的东西,我会说否 Boost.MultiIndex的一个有用特性是可以就地修改元素(通过replace()或modify())。Python的原生dict不提供这

在Python中包装boost::multi_索引。它根本无法扩展

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


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


    例如,您可以在数据中使用多个dict,每个dict使用不同的键来引用它们。

    要回答您的问题,即Python中是否存在类似的东西,我会说否

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


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

    这个答案有些关联:Yeap给出了一个实现,但这忽略了许多重要问题:修改操作下不同索引之间的同步、迭代器投影、性能感知转换……是的,问了这个问题一年多后,我怀疑这一点。然而,我还了解到,python支持的数据库动物园中有足够多的多样性,其中一个可以真正解决这个问题。