【发布时间】:2013-06-25 04:13:43
【问题描述】:
我正在将一些 C++ 代码移植到 Python,其中一个数据结构是一个多重集,但我不确定如何在 Python 中对此进行建模。
让ms 成为 C++ multiset<int>
如何使用ms(发布一些示例)
multiset<int>::iterator it = ms.find(x)
ms.erase(it)
ms.insert(x)
ms.end()
ms.lower_bound(x)
ms.clear()
【问题讨论】:
-
你可以在python中查看
Counter类:docs.python.org/2/library/collections.html#collections.Counter -
我列出的功能/方法是否有等价物?
-
那么多重集只是一个带有内置对数查找的有序列表吗?即我可以使用 bisect 模块或二进制搜索功能的 Python 列表?
-
我用谷歌搜索并没有找到我想要的东西。如果您只想回复“snark”,请不要在此帖子中回复。
-
C++
multiset似乎比 PythonCounter有更丰富的接口。此外,C++multiset是有序的,所以像lower_bound这样的方法在 Python 的Counter中没有任何意义。基本上,它们的用例有些重叠,但它们不是一回事。