Tag: ordereddictionary

OrderedDictionary和Dictionary

我正在寻找一种方法来让我的Dictionary按照它们添加的顺序来枚举它的KeyValuePair 。 现在, Dictionary的文档明确指出: 为了枚举的目的,字典中的每个项目都被当作一个KeyValuePair<TKey, TValue>结构来表示一个值及其关键字。 项目返回的顺序是未定义的。 我发现我需要的是一个OrderedDictionary ,但作为我的怀疑论者,我决定自己尝试一下: OrderedDictionary od = new OrderedDictionary(); Dictionary<String, String> d = new Dictionary<String, String>(); for (int i = 0; i < 10; i++ ) { od.Add("key"+i,"value"+i); d.Add("key"+i,"value"+i); } System.Console.WriteLine("OrderedDictionary"); foreach (DictionaryEntry de in od) { System.Console.WriteLine(de.Key +", " +de.Value); } System.Console.WriteLine("Dictionary"); foreach (var tmp in d) { System.Console.WriteLine(tmp.Key […]

如何sortingOrderedDict OrderedDict – Python

我想通过'深度'键在OrderedDict中sortingOrderedDict。 有没有解决scheme来sorting字典? OrderedDict([ (2, OrderedDict([ ('depth', 0), ('height', 51), ('width', 51), ('id', 100) ])), (1, OrderedDict([ ('depth', 2), ('height', 51), ('width', 51), ('id', 55) ])), (0, OrderedDict([ ('depth', 1), ('height', 51), ('width', 51), ('id', 48) ])), ]) sorting字典应该看起来像这样: OrderedDict([ (2, OrderedDict([ ('depth', 0), ('height', 51), ('width', 51), ('id', 100) ])), (0, OrderedDict([ ('depth', 1), ('height', […]

覆盖{…}符号,所以我得到OrderedDict()而不是一个字典()?

我想用一个.py文件,像一个configuration文件。 所以使用{…}符号我可以创build一个字典作为键的字典,但定义顺序是在标准的Python字典中丢失。 我的问题:是否有可能重写{…}符号,以便我得到一个OrderedDict()而不是一个dict() ? 我希望简单地重写OrderedDict( dict = OrderedDict )的字典构造函数将工作,但它不。 例如: dict = OrderedDict dictname = { 'B key': 'value1', 'A key': 'value2', 'C key': 'value3' } print dictname.items() 输出: [('B key', 'value1'), ('A key', 'value2'), ('C key', 'value3')]

如何将OrderedDict转换为python3中的常规词典

我正在努力解决以下问题:我想要这样转换一个OrderedDict : OrderedDict([('method', 'constant'), ('data', '1.225')]) 成这样的常规字典: {'method': 'constant', 'data':1.225} 因为我必须将其作为string存储在数据库中。 转换之后,订单就不再重要了,所以我可以放弃订购的function。 感谢任何提示或解决scheme, 本

我怎样才能在python的OrderedDict的顶部添加一个元素?

我有这个 d1 = OrderedDict([('a', '1'), ('b', '2')]) 如果我这样做 d1.update({'c':'3'}) 然后我得到这个 OrderedDict([('a', '1'), ('b', '2'), ('c', '3')]) 但我想要这个 [('c', '3'), ('a', '1'), ('b', '2')] 无需创build新的字典

有没有理由不使用有序的字典?

我指的是collections模块中的OrderedDict 。 如果它具有可订购的附加function,我认为可能经常不需要,但即使如此,是否有任何缺点? 它慢吗? 它是否缺less任何function? 我没有看到任何遗漏的方法。 总之,为什么我不应该总是用这个而不是一个正常的字典呢?

OrderedDict理解

我可以在python扩展语法为其他字典的词典的理解,如collections的OrderedDict模块或从dictinheritance我自己的types? 只要重新绑定dict名称显然不起作用, {key: value}理解语法仍然给你一个普通的理解和文字老字典。 >>> from collections import OrderedDict >>> olddict, dict = dict, OrderedDict >>> {i: i*i for i in range(3)}.__class__ <type 'dict'> 所以,如果可能的话,我该怎么做呢? 没关系,只能在CPython中使用。 对于语法,我想我会尝试用一个O{k: v}前缀,就像我们在r'various' u'string' b'objects' 。 注意:当然,我们可以用一个生成器expression式来代替,但是我更感兴趣的是用语法来看待可用的python。

Python OrderedDict不保留元素顺序

我试图创build一个OrderedDict对象,但是我创build它,比元素都混乱。 这就是我所做的: from collections import OrderedDict od = OrderedDict({(0,0):[2],(0,1):[1,9],(0,2):[1,5,9]}) 元素不会保留在我分配的顺序中 od OrderedDict([((0, 1), [1, 9]), ((0, 0), [2]), ((0, 2), [1, 5, 9])]) docs.python.org没有一个例子,我不知道为什么顺序变得混乱。 任何帮助是极大的赞赏。

为什么OrderedDict的值不相等?

用Python 3: >>> from collections import OrderedDict >>> d1 = OrderedDict([('foo', 'bar')]) >>> d2 = OrderedDict([('foo', 'bar')]) 我想检查平等: >>> d1 == d2 True >>> d1.keys() == d2.keys() True 但: >>> d1.values() == d2.values() False 你知道为什么价值不平等吗? 我已经用Python 3.4和3.5testing过了。 在这个问题之后,我在Python-Ideas邮件列表上发布了更多的细节: https://mail.python.org/pipermail/python-ideas/2015-December/037472.html

正确的方式来初始化一个OrderedDict使用它的构造函数,以保持初始数据的顺序?

初始化有序字典(OD)以便保留初始数据的顺序的正确方法是什么? from collections import OrderedDict # Obviously wrong because regular dict loses order d = OrderedDict({'b':2, 'a':1}) # An OD is represented by a list of tuples, so would this work? d = OrderedDict([('b',2), ('a', 1)]) # What about using a list comprehension, will 'd' preserve the order of 'l' l = ['b', 'a', 'c', […]