回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>所以我有一个多维字典,它有一个数字键来标识一个内部字典,但是内部字典没有数字键。我很难根据内部字典的字符串索引之一的值创建一个排序键列表。我可能没有正确地描述该问题,因此下面是一个突出显示该问题的脚本示例:</p>
<pre><code>#! /usr/bin/python
my_dict = {
12608: {
'market_data': {
'sellVolume': 69210, 'buyValue': 296.20999999999998,
'sellValue': 523.20000000000005, 'buyVolume': 9210899
}
},
24513: {
'market_data': {
'sellVolume': 42148, 'buyValue': 548.95000000000005,
'sellValue': 890.0, 'buyVolume': 11213386
}
},
12773: {
'market_data': {
'sellVolume': 383000, 'buyValue': 609.54999999999995,
'sellValue': 799.98000000000002, 'buyVolume': 10285288
}
},
24486: {
'market_data': {
'sellVolume': 1314250, 'buyValue': 99.780000000000001,
'sellValue': 425.0, 'buyVolume': 14690060
}
},
2801: {
'market_data': {
'sellVolume': 247577, 'buyValue': 348.98000000000002,
'sellValue': 518.94000000000005, 'buyVolume': 10325916
}
}
}
d_sorted = sorted(my_dict, key=lambda \
x: my_dict[x]['market_data']['buyValue'], reverse=True)
print "key\tbuyValue"
for key in d_sorted:
print "%d\t%.2f" % (key, my_dict[key]['market_data']['sellValue'])
</code></pre>
<p>下面是脚本的结果</p>
^{pr2}$
<p>示例字典不是我的完整用例,而是一个精简版本来显示问题(例如,还有另一个内部字典对问题不重要)。我之所以提到这一点,是因为对于python来说,可能有一种比dictionary更好的数据类型。在</p>
<p><a href="https://stackoverflow.com/questions/10771234/appropriate-data-structure-for-sorting-a-multi-dimensional-array-in-python">question here</a>帮助我走到这一步,我看到的主要区别是我的第二维度不使用整数键。在</p>
<p>如果重要的话,我使用的是python2.6.7版本。在</p>