草庐IT

OrderedDictionary

全部标签

c# - OrderedDictionary、ListDictionary 和 HybridDictionary 需要什么?`

当OrderedDictionary、ListDictionary和HybridDictionary这三种不同的字典都执行相似的功能时,它们需要什么?它们都不是排序的,集合中的元素都可以通过键来检索。那么,三个不同类的目的是什么? 最佳答案 简而言之:Dictionary-嗯,字典。ListDictionary-用于小型集合,通常少于10件HybridDictionary-在集合大小未知时使用(根据集合大小切换实现)OrderedDictionary-与SortedDictionary的元素不同,OrderedDictionary的

python - 如何从列表列表中制作有序字典?

问题是:有一个名称列表和一个列表列表,如何创建一个列表,其中每个项目都是一个有序的字典,名称作为键,列表列表中的项目作为值?从下面的代码中可能会更清楚:fromcollectionsimportOrderedDictlist_of_lists=[['20010103','0.9507','0.9569','0.9262','0.9271'],['20010104','0.9271','0.9515','0.9269','0.9507'],['20010105','0.9507','0.9591','0.9464','0.9575'],]names=['date','open','hig

python - 如何在 Python 中创建有界内存装饰器?

显然,快速搜索可以找到Python中内存装饰器的上百万种实现和风格。但是,我对一种我一直找不到的味道很感兴趣。我想让它的存储值的缓存可以是固定容量。添加新元素时,如果达到容量,则删除最旧的值并用最新值替换。我担心的是,如果我使用memoization来存储大量元素,那么程序会因为内存不足而崩溃。(我不知道这个问题在实践中有多重要。)如果缓存的大小是固定的,那么内存错误就不是问题。随着程序的执行,我处理的许多问题都会发生变化,因此初始缓存值与后来的缓存值看起来非常不同(并且以后出现的可能性要小得多)。这就是为什么我希望用最新的东西取代最旧的东西。我找到了OrderedDict类和一个示例

python - 有效地找到 OrderedDictionary 中的上一个键

我有一个包含汇率值的OrderedDictionary。每个条目都有一个键的日期(每个日期恰好是每年一个季度的开始),值是一个数字。日期按从旧到新的顺序插入。{date(2017,1,1):95,date(2018,1,1):100,date(2018,6,1):110,date(2018,9,1):112,}我的利率词典比这个大得多,但这是一般的想法。给定一个任意日期,我想在字典中找到它之前的值。。例如,查找date(2018,8,1)的日期应返回值110,因为条目date(2018,6,1)是我的日期查找之前最近的键。同样,日期date(2017,12,1)应该返回95,因为最近的

python - 如何在 OrderedDict 中获取 "next"项目?

我正在使用OrderedDict随机访问列表,但现在想要列表中的next项目:foo=OrderedDict([('apple',4),('banana',3),('orange',2),('pear',1)])apple=foo['apple']如何只使用foo和apple获得香蕉? 最佳答案 如果您可以访问OrderedDict实现中有意保密的那些部分:>>>classMyOrderedDict(OrderedDict):...defnext_key(self,key):...next=self._OrderedDict__ma

python - 为什么我不能通过继承 OrderedDict 和 defaultdict 来创建默认的有序字典?

我第一次尝试在collections模块中结合两个字典的特性是创建一个继承它们的类:fromcollectionsimportOrderedDict,defaultdictclassDefaultOrderedDict(defaultdict,OrderedDict):def__init__(self,default_factory=None,*a,**kw):super().__init__(default_factory,*a,**kw)但是,我无法将项目分配给该词典:d=DefaultOrderedDict(lambda:0)d['a']=1Traceback(mostrecen

python - 在 Python OrderedDict 中获取关键索引?

我有一个collections.OrderedDict带有键值对列表。我想计算索引i以便第i键匹配给定值。例如:food=OrderedDict([('beans',33),('rice',44),('pineapple',55),('chicken',66)])我想从键chicken到索引3,或者从键rice到索引1。我现在可以用food.keys().index('rice')但是有什么方法可以利用OrderedDict通过键名快速查找内容的能力吗?否则索引查找似乎是O(N)而不是O(logN),而且我有很多项。我想我可以通过创建自己的索引来手动执行此操作:>>>foodIndex

ios - Swift - 字典中的存储值顺序完全改变

我试图显示字典格式的数据。下面是三个尝试。第一次尝试,输出顺序完全改变了。第二次尝试,输出顺序与输入相同。但是,在第三次尝试中,我将变量声明为NSDictionary。我收到的确切输出。为什么这会改变字典?请指导我。我搜索了Swift的Dictionary标签。但是我找不到。//FirstAttemptvardict:Dictionary=["name1":"Loy","name2":"Roy"]println(dict)//output:[name2:Roy,name1:Loy]//SecondAttemptvardict:Dictionary=["name2":"Loy","nam

ios - Swift - 字典中的存储值顺序完全改变

我试图显示字典格式的数据。下面是三个尝试。第一次尝试,输出顺序完全改变了。第二次尝试,输出顺序与输入相同。但是,在第三次尝试中,我将变量声明为NSDictionary。我收到的确切输出。为什么这会改变字典?请指导我。我搜索了Swift的Dictionary标签。但是我找不到。//FirstAttemptvardict:Dictionary=["name1":"Loy","name2":"Roy"]println(dict)//output:[name2:Roy,name1:Loy]//SecondAttemptvardict:Dictionary=["name2":"Loy","nam

python - 在 OrderedDict 中更改键而不丢失顺序

开始OrderedDict([('a',1),('c',3),('b',2)])有没有可能结束OrderedDict([('a',1),('__C__',3),('b',2)])确保'__C__'项目在'b'之前和'a'之后,即保持顺序? 最佳答案 你可以试试:>>>d=OrderedDict([('a',1),('c',3),('b',2)])>>>dOrderedDict([('a',1),('c',3),('b',2)])>>>d2=OrderedDict([('__C__',v)ifk=='c'else(k,v)fork,v