У меня есть словарь (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])
Ваше описание проблемы не совсем ясное, а нерабочий код редко помогает прояснить, но я подозреваю, что эта строка является вашей проблемой: elif len(dict[a]) < length
.
range
с именем переменной. 2.len(index2.values()) == len(index2)
, поэтому не вызывайтеvalues()
.