2012-03-19 83 views
0

我有一个2D字典如下蟒蛇排序2D字典由指数

dict = {'182.12.17.50': {'185.23.15.69': 30, '175.12.13.14': 14}, '182.15.12.30': {'175.12.13.15': 10, '145.33.34.56': 230}} 

我想基于价值使得出来放样子

[{IP1: '182.15.12.30', IP2: '175.12.13.15', val:10}, {IP1: '182.12.17.50', IP2: '175.12.13.14', val:14}, ...] 

我是一个新手,那种在python中。我写了一个丑陋的代码。有没有什么好的方法来实现呢?

感谢,

回答

4

您可以使用generator expression和内置sorted

sorted(({'IP1': ip1, 'IP2': k, 'val':v} 
      for ip1,subdct in dct.items() 
      for k,v in subdct.items()), 
     key=lambda newd: newd['val']) 

顺便说一句,这是一个坏主意,用dict作为变量的名字,因为这样做掩盖了内置的dict。因此,我将该变量重命名为dct

+0

我知道应该有一种优雅的方式来做到这一点...... – Amir 2012-03-20 00:01:57