Я использую этот код для формирования словаря:Странное поведение словаря сортировочного
tt_data[dt] = {}
for hour in range(work_begins, work_ends, 2):
tt_data[dt][hour] = ''
if Rehearsal.objects.filter(dt__year=dt.year, dt__month=dt.month, dt__day=dt.day, dt__hour=hour).exists():
tt_data[dt][hour] = Rehearsal.objects.get(dt__year=dt.year, dt__month=dt.month,
dt__day=dt.day, dt__hour=hour)
Странная вещь, когда «work_begins» равен 14, то этот элемент идет к концу Dict:
Любая помощь приветствуется.
Значения 'tt_data' являются регулярными словарями, а не упорядоченными словарями, правильно? Регулярные словари неупорядочены. –
Ключами в вашем OrderedDict являются даты. Вторая строка захвата экрана отключена, но она отображает список двухэлементных кортежей. Первый элемент - это ключ, который является объектом даты, второй элемент - это значение, которое является dict. Этими ключами/датами являются вещи, которые хранятся в порядке, а не значения/dicts, связанные с этими ключами. Если вы хотите, чтобы значения/dicts поддерживались в порядке, они должны быть созданы как OrderedDicts. – 7stud
Это прямо там: 'tt_data [dt] = {}' Почему вы думаете, что '{}' создает OrderedDict? Строка: 'tt_data [dt] [hour] = ...' вставляет записи в '{}'. – 7stud