2012-12-10 53 views
0

二维字典我有以下格式的字典:排序逆转值

d[1][2]= 0.3 
d[1][3] = 0.4 
d[2][8] = 0.2 
d[id1][id2] = value 

我想通过值来扭转这个排序?

我的逻辑非常冗长,我有一种感觉,它可以在Python中很快完成?

+3

字典没有在Python顺序。 –

+0

字典在Python中是无序的,所以说你想要一个“按值排序”是没有意义的。你真的想要什么样的数据类型?密钥列表,也许? – Blckknght

+1

OrderedDict? http://docs.python.org/2/library/collections.html#collections.OrderedDict – bluszcz

回答

1

使用sorted与理解:

sorted((value, id1, id2) for id1, d1 in d.items() for id2, value in d1.items()) 
1

这是不能做到的。

词典将键映射到值。他们没有秩序的概念,所以你的问题没有多大意义。

+0

那么,有OrderedDicts http://docs.python.org/2/library/collections.html#collections.OrderedDict它会记住插入顺序... – bluszcz