Python中如何设计数据结构,求建议

1.成交量和价格序列(以下简称“量价序列”):每一个时间间隔,记录间隔中间的成交量,记录间隔中间的价格(如果是时间间隔是最小周期 3 秒,则直接记录原始价格),如果是 3 秒的倍数,则几个价格相加求平均值。实时读取这两个数据,记录在一个数据结构中,这个数据结构是按照时间序列,价格和对应成交量的序列。

2.价格比较序列:设定一个序列数据结构,在量价序列中,当前价格比较序列前一个价格,如果价格更高,则二者成交量相加,价格设定成区间形式(最低,最高),时间记录成区间形式(前后),以此循环,例如下一个价格还比之前的高,那么就再把成交量累加,其价格替换价格区间中的高点,时间区间中的后面那个时间点设定成最新时间。如果最新价格不是更高了,而是更低了,则开一个新的序列节点,记录这个起始区间(低价高价一样,时间前后一样),如果后面的价格比这个价格低,则设定区间低价为当前价,区间后面的时间点记录成当前时间点。以此类推,只要发生后面的价格比起前面价格有逆转,就按此规则新开一个节点记录。这个数据结构要带 key 值,并且这个 key 值要有顺序,通过 key 值的大小,就能判断哪个 key 值的节点在前,哪个在后,未来调用的时候,可以直接通过 key 值进行调用其中的一个节点。

设计一个数据类型。。
Python中如何设计数据结构,求建议


4 回复

在Python里设计数据结构,主要看你的具体需求。如果内置的list、dict、set、tuple够用,就别自己折腾。比如存键值对用dict,需要有序且可重复就用list,需要唯一性就用set。

如果内置的不够,比如你要个队列,直接用collections.deque,它两端的增删都是O(1)。要维护顺序可以用collections.OrderedDict。需要默认值就用collections.defaultdict

更复杂的场景,比如要高效地根据优先级取数据,直接用heapq模块搞个堆。如果这些标准库里的工具还满足不了你,比如你需要树、图或者更特定的结构,那才需要考虑用类(class)自己封装。

核心就是:优先用内置和标准库,实在不行再自己写。

一句话总结:从内置类型和collections模块找现成方案,是最高效的设计起点。

请自行完成作业,另:

这个标题就没人想回答了

回到顶部