Python сортировать 2D словарь по индексу - PullRequest
0 голосов
/ 20 марта 2012

У меня есть двумерный словарь следующим образом

    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}, ...]

Я новичок в питоне. Я написал ужасный код для этого. Есть ли хороший способ реализовать это?

Спасибо

1 Ответ

4 голосов
/ 20 марта 2012

Вы можете использовать генератор выражения и встроенное 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...