我有一个数据源,最好用字典来建模(它是一组键值对)。由于特定的可视化需求,我需要提供类似于列表的数据访问接口(除了常规的字典接口),这意味着你应该能够执行以下操作:
data["mykey"] # returns the associated value
data[12][0] # returns the 13th key in the dictionary
data[12][1] # returns the 13th value in the dictionary
我找不到合适的门面实现方式——如果我将索引存储为字典键:
data[12] = ("mykey", "myval")
我可以轻松解决后两种情况,但我失去了处理第一种情况的能力。如果我存储数据如下:
data["mykey"] = "myval"
我需要在临时列表中列出所有键和值,然后才能返回元素。
请注意,所有这些实现都假定我正在使用一个OrderedDict。
你如何提供两个接口?
如果你好奇,这是为了创建一个PyQt的QAbstractTableModel,其中底层数据容器是一个字典。
谢谢。
data.iteritems()
有用吗? - Craig McQueen