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.它们也必须是dict中最大的timedeltas。
以下是我试图解决的问题:
x = 0
for key in dict1:
if key in sorted(dict1)[-1] and x < 6:
x = x+dict1[key]
del dict1[key]
我的思路是排序的(dict)返回一个timedeltas列表,最后是最大的timedeltas。我可以将每个键与列表中最大的timedelta匹配,将其值加到x&amp;删除该密钥,直到x达到6.但是这会返回:
TypeError: argument of type 'datetime.timedelta' is not iterable
再次难倒。
答案 0 :(得分:1)
从评论中我推断出你想要删除最大的时间值,直到它们的总和值达到6。
values_sum = 0
for key in sorted(dict1,reverse=True):
values_sum +=dict1[key]
del dict1[key]
if values_sum >= 6:
break