如何保留字典中项目的顺序



code:

import os
import collections
Parameters = collections.OrderedDict()
Parameters = {"current": '50mA', "voltage": '230', "resistance": '40 ohms'}                
Parameters["inductance"] = "37"
Parameters["power"] = "100 watt"
print Parameters
o/p:
{'current': '50mA', 'power': '100 watt', 'voltage': '230', 'inductance': '37', 'resistance': '40 ohms'}

为什么 OrderedDict() 在此代码中不起作用?

替换OrderedDict对象:

Parameters = collections.OrderedDict()
Parameters = {"current": '50mA', "voltage": '230', "resistance": '40 ohms'}                

看到第二行=了吗?现在Parameters绑定到常规字典,而不是第一行的OrderedDict()

按键值对序列顺序传入元素:

Parameters = collections.OrderedDict(
    (("current", '50mA'), ("voltage", '230'), ("resistance", '40 ohms'))
)
Parameters["inductance"] = "37"
Parameters["power"] = "100 watt"

演示:

>>> import collections
>>> Parameters = collections.OrderedDict(
...     (("current", '50mA'), ("voltage", '230'), ("resistance", '40 ohms'))
... )
>>> Parameters["inductance"] = "37"
>>> Parameters["power"] = "100 watt"
>>> Parameters
OrderedDict([('current', '50mA'), ('voltage', '230'), ('resistance', '40 ohms'), ('inductance', '37'), ('power', '100 watt')])

在以下行:

Parameters = {"current": '50mA', "voltage": '230', "resistance": '40 ohms'}

Parameters不是命令字典,而是一个简单的字典。只需将其更改为以下内容:

Parameters["current"] ='50mA'
Parameters["voltage"] ='230'
Parameters["resistance"] ='40 ohms'

因为你实际上创建了两个对象。首先,您创建 OrderedDict:

Parameters = collections.OrderedDict()

然后你继续重用变量名并创建一个普通的字典,它不保持顺序。

Parameters = {"current": '50mA', "voltage": '230', "resistance": '40 ohms'} 

您应该每行添加一个变量。

Parameters = collections.OrderedDict()
Parameters["inductance"] = "37"
Parameters["power"] = "100 watt"

等等。

最新更新