Python Sorted Containers 02 - SortedDict & SortedSet


SortedDict

在插入、删除键值对后仍然可以按照键值自动维护顺序的字典。

from sortedcontainers import SortedDict
sd = SortedDict()

插入键值对

  1. 插入/更新单个键值对:SortedDict.__setitem__(key, val), SortedDict[key]=val
  2. 插入(如果键值不存在)的键值对:SortedDict.setdefault(key, val)
  3. 插入/更新多个键值对:SortedDict.update({key1: val1, key2: val2, ...})

移除键值对

  1. 根据键值移除:SortedDict.__delitem__(key), del SortedDict[key], SortedDict.pop(key)
  2. 根据键值的索引移除:SortedDict.popitem(index)

查询键值对

  1. 根据键值获取:SortedDict[key], SortedDict.__getitem__(key)
  2. 查询键值是否存在:SortedDict.__contains__(key), key in SortedDict
  3. 获取键值对(不存在,返回空):SortedDict.get(key)
  4. 根据键值索引获取:SortedDict.peekitem(index)
  5. 支持 SortedList 包含的其他接口:SortedDict.bisect_left, SortedDict.bisect_right, SortedDict.index, …

Dict类内置接口支持

  1. 获取键的列表:SortedDict.keys()
  2. 获取值的列表:SortedDict.values()
  3. 获取键值对的列表:SortedDict.items()

SortedSet

将可哈希的元素保持顺序的存放在列表里。

from sortedcollections import SortedSet
ss = SortedSet()

Set 类内置接口

  1. 查询元素接口:SortedSet.__contains__(val)
  2. 增加元素接口:SortedSet.add(val), SortedSet.update(Iterable[val1, val2, ...])
  3. 移除元素接口:SortedSet.discard(val), SortedSet.remove(val)
  4. 集合操作接口:SortedSet.difference(SortedSet), SortedSet.intersection(SortedSet), SortedSet.symmetric_difference(SortedSet), SortedSet.union(SortedSet)

文章作者: 一汪白水
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 一汪白水 !
  目录