Python OrderedSet 与 .index() 方法
有谁知道Python的快速OrderedSet实现:
- 记住插入顺序
- 有一个index()方法(就像列表提供的那样)
我发现的所有实现都缺少.index()方法。
Does anyone know about a fast OrderedSet implementation for python that:
- remembers insertion order
- has an index() method (like the one lists offer)
All implementations I found are missing the .index() method.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您始终可以将其添加到子类中。以下是您在评论中链接的
OrderedSet
的基本实现:您提到您只需要
add
、index
和按序迭代。您可以通过使用OrderedDict
作为存储来获取此信息。作为奖励,您可以对collections.Set
抽象类进行子类化,以获取其他集合操作frozenset
的支持:您无法对
collections.MutableSet
进行子类化 code> 因为您不支持从集合中删除元素并保持索引正确。You can always add it in a subclass. Here is a basic implementation for the
OrderedSet
you linked in a comment:You mentioned you only need
add
,index
, and in-order iteration. You can get this by using anOrderedDict
as storage. As a bonus, you can subclass thecollections.Set
abstract class to get the other set operationsfrozenset
s support:You can't subclass
collections.MutableSet
because you can't support removing elements from the set and keep the indexes correct.