У меня есть инвертированный индекс. Он состоит из словаря слова и списка проводки документов, в которых появляются условия. Я просто хочу сортировать словарь по алфавиту. Вот как это выглядит сейчас (пример):Как заказать по ключу (по алфавиту) в defaultdict (список) для инвертированного индекса
self.index =
defaultdict(<type 'list'>, {
'all': [['d03', array('I', [32L, 40L)], ['d07', array('I', [32L, 40L, 47L])], ['d05', array('I', [32L, 40L, 47L])]],
'just': [['d03', array('I', [11L])], ['d07', array('I', [11L])], ['d05', array('I', [11L])], ['d08', array('I', [11L])]])
'collect': [['d04', array('I', [24L])]]
'occurring': [['d03', array('I', [34L])], ['d07', array('I', [34L])]
... и так далее это то, как он должен выглядеть после сортировки:
'all': [['d03', array('I', [32L, 40L)], ['d07', array('I', [32L, 40L, 47L])], ['d05', array('I', [32L, 40L, 47L])]],
'collect': [['d04', array('I', [24L])]]
'just': [['d03', array('I', [11L])], ['d07', array('I', [11L])], ['d05', array('I', [11L])], ['d08', array('I', [11L])]])
'occurring': [['d03', array('I', [34L])], ['d07', array('I', [34L])]
, что я пробовал:
self.index = sorted(self.index)
print self.index
print self.index['all']
первый вызов печати обеспечивает идеальный отсортированный список слов, но если я попытаюсь получить связанный список сообщений для слова «все», я получаю это сообщение об ошибке:
TypeError: list indices must be integers, not str
yep. Вызов IMHO sorted() лучше для просмотра результатов упорядоченным способом, а не для переупорядочения данных. Спасибо за это! – user2618343