回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我在使用<code>collections.OrderedDict</code>类时遇到了一些问题。我正在Raspbian上使用Python2.7,Raspberry Pi的Debian发行版。我试着打印两本字典,以便进行文本冒险的比较(并排)。顺序对准确比较是至关重要的。
不管我怎么试,字典都是按通常的无序方式印刷的。</p>
<p>当我在我的RPi上做的时候,我得到的是:</p>
<pre><code>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)])
</code></pre>
<p>显然有一些不正确的地方,因为它正在打印函数调用并将键和值组放入嵌套列表。。。</p>
<p>这就是我在电脑上运行类似程序所得到的结果:</p>
<pre><code>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', 'Mechanic'), ('Random', 'stuff')])
</code></pre>
<p>这一次,它是有序的,但它不应该打印其他东西,虽然?(将其放入列表并显示函数调用。)</p>
<p>我在哪里犯错误?它不应该与Python的pi版本有任何关系,因为它只是Linux版本。</p>