是否存在可排序和可搜索的Python数据结构?

问题描述

| 我正在使用python管理要处理的字符串队列。它有几个要求: 每个字符串都匹配一个优先级,并且仅根据该值进行处理。 可以将字符串动态添加到此队列,但是队列中不允许重复的字符串。如果提交了副本,则必须将其标识并忽略。 那么是否有任何python数据类型将允许这样的事情?还是我必须自己写? 如果没有本地结构,那么我正在考虑维护两个结构。 一个将维护字符串及其优先级的heapq 一个列表,用于维护字符串的哈希值以检查字符串是否已存储 只要这些不会不同步,它就可以解决问题。     

解决方法

这听起来很合理。我将使用
set
而不是
list
,因为它具有更有效的成员资格检查,并且您不需要维护顺序(因为您在heapq中进行了此操作)     ,有序的词典可能会有帮助。 请参阅此页面(有序词典),其中指出:   有序字典将键按插入顺序保留。有时称为创建订单字典。      字典中有一些可能的用例,可以使它们的键保持顺序,但是顺序是基于其他条件的。      您可以使用setkeys方法随意更改顺序,但是您可能更喜欢使用这些不同条件的字典。例如,您可能需要一个字典,该字典按上次访问的键的顺序保留键。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...