基本上我想了解这件事是如何运作的。我试图创建一个元组列表[(),(),...],每个元组将有两个值,qst wuld是键,第二个是值。但这不是一个真正的字典,也存在性能问题(我的意思是读/写/删除操作。
那么我应该如何编写一个类MyOrderedDict
,它将(可能)扩展默认的dict
类。
任何提示或资源都将受到赞赏。
PS:我们在Django中具有类似的功能。 SortedDict
from django.utils.datastructures import SortedDict
它们是相同的还是在实施中遵循相同的方法?
Help on class SortedDict in module django.utils.datastructures:
class SortedDict(__builtin__.dict)
| A dictionary that keeps its keys in the order in which they're inserted.
|
| Method resolution order:
| SortedDict
| __builtin__.dict
| __builtin__.object
|
| Methods defined here:
答案 0 :(得分:2)
该课程将管理字典和列表。在幕后,对于每个标准的dict操作,它将使用两者:
Dvalues = {"foo":"x","bar":"y","baz":"z"}
Lorder = ["bar","baz","foo"]
要按键获取值,请将其作为标准字典:
return Dvalues[key]
要按输入的顺序m获取值:
return Dvalues[Lorder[m]]
添加键,值:
Dvalues[key] = value
Lorder.append(key)
等
答案 1 :(得分:0)
您可以查看source in Python 2。它似乎是用C 3 for Python 3实现的。