Я посмотрел на различные решения для сортировки словарей и запутался.Поэтому решил задать свой вопрос здесь.
Я разрабатываю приложение для очередей, которое отдает приоритет людям, которые раньше не участвовали.После этого приоритет отдается времени запроса.
Поэтому у меня два словаря.Один отслеживает количество участников, а другой - время участия.
При нажатии кнопки я записываю время в своем первом словаре следующим образом:
dictionary1[name] = time.time()
это будет выглядеть следующим образом:
dictionary1 = {'jessi':time.time(), 'jack':time.time(), 'bob':time.time()}
Значения time.time () являются числами с плавающей запятой.Второй словарь отслеживает, сколько участников следуют:
dictionary2 = {'jack':2 , 'john':1, 'sam': 4}
Я хочу, чтобы люди с 0 участием были наверху очереди.После этого люди с меньшим количеством участников.
После сортировки по участию я хочу отсортировать людей по времени подачи.
Я видел много примеров, использующих что-то вроде:
sorted_dict = sorted(dict['values'], key=lambda k: k['a']['b'])
Однако я получаю ошибки, когда значение отсутствует в словаре 2.
из этих двух словарей, я хочу, чтобы список был упорядочен согласновышеуказанные критерии.Список должен быть сгенерирован из словаря1, но отсортирован в соответствии со значениями в словаре1 и словаре2.
Как мне подойти к этому?
РЕДАКТИРОВАТЬ:
Предполагая, что dictionary1 = {'jessi': 10,' jack ': 20,' bob ': 30} dictionary2 = {' jessi ': 1,' jack ': 2,' john ': 1,' sam ': 4} Вывод должен быть следующим: list =['bob', 'jessi', 'jack']
Бобу дан приоритет, потому что он отсутствует в словаре 2.