Python 升序、查找高效的集合方案?

teli · 2024-9-15 19:00:52 · 68 次点击
需要一个集合,要求:
1. 遍历时是升序
2. in 查找很高效

特点:
1. 初始化后,没遍历和 in 之外的其它操作,即初始化后不会更新
2. 初始化就是升序的
3. 大量的遍历和 in 操作
4. 集合内元素是唯一的

最早用的是 list ,缺点:in 低效
现在用 set ,缺点:遍历出来不是升序。刚刚发现非升序,在一些地方会有问题

希望方案很简单,最好是用标准库解决

一个可能的解决方案:bisect 。但用起来有点小麻烦
一个可能的解决方案,自己 new 一个类型,包装 list 和 set ,遍历用 list ,in 用 set
举报· 68 次点击
登录 注册 站外分享
5 条回复  
sagaxu 初学 2024-9-15 20:13:57
from sortedcontainers import SortedSet
NoOneNoBody 小成 2024-9-15 19:27:22
in 低效的话,应该元素很多,那还是 pandas+1 ,遍历操作可以转为向量化
nagisaushio 小成 2024-9-15 19:13:14
OrderedDict
ho121 小成 2024-9-15 19:04:45
OrderedDict
fox0001 小成 2024-9-15 19:04:23
pandas
返回顶部