我想使用一种行为类似于[(a,b)]
用作字典的简单对列表的类型,将 type 的键映射到 typea
的值b
,同时保持“用户指定的”、定义的键顺序。(即就像普通列表一样 - 我希望能够“附加”一个项目,然后将其识别为“最后一个元素”。)但是我希望随机访问查找具有优于线性性能的键,即Data.Map
提供什么. 一种选择是除了定义其顺序的键列表之外仅维护一个普通映射:
data OrderedDict a b = OrderedDict (Map a b) [a]
然后定义append
使两个密钥集合保持同步的操作等。维护相同键的两个单独集合似乎很难看。是否有现成的数据类型已经将有序键与高效的随机访问键查找相结合?