dict1 = {datetime.timedelta(3, 21388, 702926): 2, datetime.timedelta(10, 21388, 702926): 1, datetime.timedelta(3, 65011, 297074): 2, datetime.timedelta(14, 65011, 297074): 1, datetime.timedelta(17, 65011, 297074): 1, datetime.timedelta(0, 65011, 297074): 1, datetime.timedelta(7, 65011, 297074): 1, datetime.timedelta(10, 65011, 297074): 1, datetime.timedelta(0, 21388, 702926): 1}
Я пытаюсь удалить timedeltas, сумма значений которого равна 6. Они также должны быть самыми большими timedeltas в dict.python удалить ключи, значения которых равны сумме
Вот как я пытаюсь решить:
x = 0
for key in dict1:
if key in sorted(dict1)[-1] and x < 6:
x = x+dict1[key]
del dict1[key]
Мое мышление сортируется (ДИКТ) возвращает список timedeltas с крупнейшими из них в конце. Я мог бы соответствовать каждому ключу с наибольшим timedelta в списке, обобщать его значение х & удалить этот ключ до тех пор, пока не достигнут й 6. Но это возвращает:
TypeError: argument of type 'datetime.timedelta' is not iterable
Стумпед снова.
Не используйте 'dict' как имя, вы маскируя встроенную в типе. –
Посмотрите, если это вам поможет - http://stackoverflow.com/questions/1060279/iterating-through-a-range-of-dates-in-python – Dayan
Что делать, если сумма самых больших ключей * не * точно 6? –