2012-03-19 106 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