是否有可以排序和搜索的Python数据结构?

Chr*_*lij 3 python list priority-queue data-structures

我正在使用python来管理要处理的字符串队列.它有几个要求:

  • 每个字符串都与优先级匹配,并且仅根据该值进行处理.
  • 可以动态地将字符串添加到此队列,但队列中不允许重复的字符串.如果提交了副本,则必须标识并忽略它.

那么是否有任何python数据类型允许这样的东西?或者我必须自己写?

如果那时没有本土的那个,我正在考虑维护两个结构.

  1. 一个heapq,它将维护字符串及其优先级
  2. 一个列表,其保持了字符串的哈希值来检查字符串是否已经存储

只要这些不会失去同步,它就应该解决问题.

Dae*_*yth 5

这听起来像是一种合理的方法.我会使用a set而不是a,list因为它有更高效的成员资格检查,你不需要维护顺序(因为你在heapq中这样做)