python删除其值总和等于总数的键
我试图删除timedelta,其值之和等于6。它们还必须是目录中最大的时间增量 以下是我试图解决这个问题的方法:python删除其值总和等于总数的键,python,dictionary,Python,Dictionary,我试图删除timedelta,其值之和等于6。它们还必须是目录中最大的时间增量 以下是我试图解决这个问题的方法: 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
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}
再次被难倒。从评论中,我推断您希望删除最大的时间增量,直到其值的总和达到6
TypeError: argument of type 'datetime.timedelta' is not iterable
不要使用
dict
作为名称,你正在屏蔽内置类型。看看这个问题是否对你有帮助-如果最大键的总和不正好是6怎么办?@koogee:查找“背包问题”,你这里有一个。@koogee但是你能在总和中有两个以上的值吗?谢谢。它对提出的问题很有效。我将对它进行更多的测试,同时还将研究最大键的总和与本例中的不完全相同的情况。
TypeError: argument of type 'datetime.timedelta' is not iterable
values_sum = 0
for key in sorted(dict1,reverse=True):
values_sum +=dict1[key]
del dict1[key]
if values_sum >= 6:
break