Сортировка странной структуры данных по времени, python 3,7 - PullRequest
0 голосов
/ 16 июня 2020

Работа с python здесь. У меня есть словарь, в котором хранятся 5 разных элементов, например: Unpopulated:

{1:[], 2:[], 3:[], 4:[], 5:[]} 

В общем, словарь с 5 ключами int, каждый из которых содержит массив.

Заполнено: (короткий пример)

{1: [['04:08', '3'], ['05:54', '2'], ['00:48', '5']], 2:[['18:19', '2'], ['20:40', '4'],['06:54', '2']] 3:['12:22', '3'], ['10:42', '1']], 4:[['16:16', '3'], ['15:09', '1']], 5:[['16:54', '2'], ['21:48', '1'], ['21:26', '1']]}. 

У кого-нибудь есть идеи о том, как отсортировать сохраненные массивы по первому значению (int представляет время) ? Я хочу иметь возможность перебирать заполненную структуру с 00:00 до 23:59 для каждого ключа от 1 до 5. (будет держать все время, когда полностью заполнен).

Если это поможет, вот как я настраиваю странную структуру данных

curClus = int(getCluster(curDate, numClusters, numIteration)) //returns an int range of 1-5
dictStorage[curClus].append([curTime, curZone]) //stored in key value of curClus

Пример вывода Я сейчас получаю :

{1: [['04:08', '3'], ['05:54', '2'], ['00:48', '5']], 2:[['18:19', '2'], ['20:40', '4'],['06:54', '2']] 3:['12:22', '3'], ['10:42', '1']], 4:[['16:16', '3'], ['15:09', '1']], 5:[['16:54', '2'], ['21:48', '1'], ['21:26', '1']]}. 

пример вывода, который я ищу:

{1: [['00:48', '5'], ['04:08', '3'], ['05:54', '2']], 2:[['06:54', '2'],['18:19', '2'], ['20:40', '4']] 3:[['10:42', '1'],['12:22', '3']], 4:[['15:09', '1'], ['16:16', '3']], 5:[['16:54', '2'], '21:26', '1'],['21:48', '1']]}. 

1 Ответ

1 голос
/ 16 июня 2020

Вы ищете что-то вроде следующего?

dictStorageSorted = {k: sorted(v, key=lambda v: v[0]) for k, v in dictStorage.items()}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...