помогите отсортировать словарь в другой словарь

1

У меня есть словарь (index2) списков 3-х элементов, организованный ключом от 0-150 или около того. Мне нужно отсортировать его в другом словаре со следующими ограничениями:
1.) все предметы, прикрепленные к одному ключу, должны оставаться вместе во втором словаре
2.) длина элементов во втором словаре должна быть одинаковой. Чтобы помочь в этом, я разделил общее количество элементов в первом словаре на число ключей во втором и привязал его к переменной, чтобы он мог использоваться как ограничивающий фактор.

Это то, что у меня есть до сих пор, однако, когда я запускаю его, он фактически ничего не добавляет к целевому словарю.

for key,runs in index2.iteritems():  
    for a in mCESrange:  
        if index2[key][0] in mCESdict[a]:  
            pass  
        elif len(mCESdict[a]) < mCESlength:  
            pass  
        else:  
            mCESdict[a].extend(index2[key])  
  • 0
    Несколько странных вещей в вашем коде: 1. Не создавайте теневой range с именем переменной. 2. len(index2.values()) == len(index2) , поэтому не вызывайте values() .
  • 0
    да, обе эти вещи изменены с исходного кода для упрощения, исходный диапазон предопределен и использует другое имя, но я подумал, что было бы более запутанным, чтобы объяснить, что такое mCESrange.
Теги:
dictionary
iteration

1 ответ

0
Лучший ответ

Ваше описание проблемы не совсем ясное, а нерабочий код редко помогает прояснить, но я подозреваю, что эта строка является вашей проблемой: elif len(dict[a]) < length.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню