代码:
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()在这段代码中没有用?
答案 0 :(得分:3)
您已替换您的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')])
答案 1 :(得分:2)
在以下行:
Parameters = {"current": '50mA', "voltage": '230', "resistance": '40 ohms'}
Parameters
不是OrderedDict,而是一个简单的词典。
只需将其更改为以下内容:
Parameters["current"] ='50mA'
Parameters["voltage"] ='230'
Parameters["resistance"] ='40 ohms'
答案 2 :(得分:2)
因为你实际创建了两个对象。首先,您要创建OrderedDict:
Parameters = collections.OrderedDict()
然后你继续重复使用变量名并创建一个普通的dict,它不能保存订单。
Parameters = {"current": '50mA', "voltage": '230', "resistance": '40 ohms'}
您应该每行添加一个变量。
Parameters = collections.OrderedDict()
Parameters["inductance"] = "37"
Parameters["power"] = "100 watt"
等等。