标签: ordereddictionary

我可以将JSON加载到OrderedDict中吗?

好的,我可以使用OrderedDict了json.dump.也就是说,OrderedDict可以用作JSON的输入.

但它可以用作输出吗?如果是这样的话?在我的情况下,我想load进入OrderedDict,这样我就可以保持文件中键的顺序.

如果没有,是否有某种解决方法?

python json load ordereddictionary

415
推荐指数
6
解决办法
13万
查看次数

重命名字典键

有没有办法重命名字典键,而无需将其值重新分配给新名称并删除旧名称键; 并且没有迭代通过dict键/值?

在OrderedDict的情况下,执行相同的操作,同时保持该键的位置.

python dictionary associative-array ordereddictionary

348
推荐指数
7
解决办法
19万
查看次数

没有OrderedDictionary的通用实现?

在.NET 3.5中似乎没有OrderedDictionary(在System.Collections.Specialized命名空间中)的通用实现.有没有我错过的?

我发现那里的实现提供了功能,但想知道是否/为什么没有开箱即用的通用实现,如果有人知道它是否是.NET 4.0中的东西?

.net c# generics ordereddictionary .net-4.0

131
推荐指数
10
解决办法
4万
查看次数

按索引访问collections.OrderedDict中的项目

可以说我有以下代码:

import collections
d = collections.OrderedDict()
d['foo'] = 'python'
d['bar'] = 'spam'
Run Code Online (Sandbox Code Playgroud)

有没有办法以编号的方式访问这些项目,例如:

d(0) #foo's Output
d(1) #bar's Output
Run Code Online (Sandbox Code Playgroud)

python collections dictionary ordereddictionary python-3.x

130
推荐指数
6
解决办法
14万
查看次数

将dict转换为OrderedDict

我在collections.OrderedDict上课时遇到了一些麻烦.我在Raspberry上使用Python 2.7,这是Raspberry Pi的Debian发行版.我正在尝试打印两个词典,以便进行文本冒险的比较(并排).订单对于准确比较至关重要.无论我尝试用他们通常无序的方式打印字典.

这是我在RPi上执行的操作:

import collections

ship = {"NAME": "Albatross",
         "HP":50,
         "BLASTERS":13,
         "THRUSTERS":18,
         "PRICE":250}

ship = collections.OrderedDict(ship)

print ship
# OrderedDict([('PRICE', 250), ('HP', 50), ('NAME', 'Albatross'), ('BLASTERS', 13), ('THRUSTERS', 18)])
Run Code Online (Sandbox Code Playgroud)

显然有些东西不对,因为它正在打印函数调用并将键和值组放入嵌套列表中......

这是我通过在PC上运行类似的东西得到的:

import collections

Joe = {"Age": 28, "Race": "Latino", "Job": "Nurse"}
Bob = {"Age": 25, "Race": "White", "Job": "Mechanic", "Random": "stuff"}

#Just for clarity:
Joe = collections.OrderedDict(Joe)
Bob = collections.OrderedDict(Bob)

print Joe
# OrderedDict([('Age', 28), ('Race', 'Latino'), ('Job', 'Nurse')])
print Bob
# OrderedDict([('Age', 25), ('Race', 'White'), ('Job', …
Run Code Online (Sandbox Code Playgroud)

python ordereddictionary

118
推荐指数
4
解决办法
14万
查看次数

使用其构造函数初始化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', 'aa']
d = OrderedDict([(i,i) for i in l])
Run Code Online (Sandbox Code Playgroud)

题:

  • 将一个OrderedDict保存的元组的列表的顺序,或元组或列表或列表等的列表的元组的元组通过在初始化的时间(2楼和3上面的例子)?

  • 如何验证是否OrderedDict实际维护订单?由于a dict具有不可预测的顺序,如果我的测试向量幸运地具有与dict的不可预测顺序相同的初始顺序,该怎么办?例如,如果不是d = OrderedDict({'b':2, 'a':1})我写d = OrderedDict({'a':1, …

python sorting dictionary ordereddictionary

109
推荐指数
2
解决办法
7万
查看次数

有没有什么方法可以正确地打印有序的词典?

我喜欢Python中的pprint模块.我经常使用它进行测试和调试.我经常使用width选项来确保输出在我的终端窗口中很好地适应.

它一直运行良好,直到他们在Python 2.7中添加了新的有序字典类型(我非常喜欢的另一个很酷的功能).如果我试着漂亮地打印一个有序的字典,它就不能很好地显示出来.而不是将每个键值对放在它自己的行上,整个事物显示在一条长行上,它包含很多次并且难以阅读.

这里有没有人有办法让它打印得很好,就像旧的无序词典一样?如果我花了足够的时间,我可能会想出一些东西,可能使用PrettyPrinter.format方法,但我想知道这里是否有人知道解决方案.

更新:我为此提交了一份错误报告.您可以在http://bugs.python.org/issue10592上看到它.

python pretty-print ordereddictionary python-2.7 pprint

91
推荐指数
6
解决办法
5万
查看次数

如何在Orthon3中将OrderedDict转换为常规字典

我正在努力解决以下问题:我想转换OrderedDict如下:

OrderedDict([('method', 'constant'), ('data', '1.225')])
Run Code Online (Sandbox Code Playgroud)

成为这样的常规字典:

{'method': 'constant', 'data':1.225}
Run Code Online (Sandbox Code Playgroud)

因为我必须将它作为字符串存储在数据库中.转换后,订单不再重要,所以无论如何我都可以省去订购的功能.

感谢任何提示或解决方案,

python ordereddictionary type-conversion

86
推荐指数
5
解决办法
7万
查看次数

有没有理由不使用OrderedDict?

我指的是模块中的OrderedDictcollections,它是一个有序字典.

如果它具有可订购的附加功能,我意识到这可能通常不是必要的,但即便如此,是否有任何缺点?它慢了吗?它缺少任何功能吗?我没有看到任何遗漏的方法.

简而言之,为什么我不应该总是使用它而不是普通的字典呢?

python dictionary ordereddictionary python-3.x

62
推荐指数
3
解决办法
8975
查看次数

OrderedDict理解

我可以在python中为其他dicts的dict comprehension扩展语法,比如collections模块中的OrderedDict 或继承自我自己的类型dict吗?

重新绑定dict名称显然不起作用,{key: value}理解语法仍然为您提供了一个简单的旧词典,用于理解和文字.

>>> from collections import OrderedDict
>>> olddict, dict = dict, OrderedDict
>>> {i: i*i for i in range(3)}.__class__
<type 'dict'>
Run Code Online (Sandbox Code Playgroud)

那么,如果可能的话我该怎么做呢?如果它只适用于CPython,那就没关系.对于语法,我想我会尝试使用O{k: v}像我们一样的前缀r'various' u'string' b'objects'.

注意: 当然我们可以使用生成器表达式,但我更感兴趣的是看到语法方面的hathon是多么糟糕.

python dictionary cpython ordereddictionary dictionary-comprehension

60
推荐指数
3
解决办法
1万
查看次数