创建int列表的所有可能的子列表,总计达到给定的限制

时间:2017-02-21 10:25:32

标签: python-2.7

我会尝试尽可能地解释。

lst = [7.1, 6.3, 5.6, 3.7]. 

我希望所有不同的组合适合50内而不会拍摄它。

lst1 = [7.1, 7.1, 7.1, 7.1, 7.1, 7.1, 7.1]
print sum(lst1)

会给49.7。 像lst2 =[7.1,7.1,7.1 5.6, 5.6, 5.6, 3.7, 3.7, 3.7]这样的列表也必须在那里。 所有不同的组合必须进入列表,将检查它们的总和以尽可能接近目标范围。我真的不知道如何把它放在其他地方,我也找不到类似的东西。 简而言之

  1. 如何迭代这些数字?
  2. 如何将这些数字添加到列表中?
  3. 如何找到最佳组合?

1 个答案:

答案 0 :(得分:0)

你可以使用itertools库来解决你的问题:

function updatePersonsWith(id, propName, value) {
  var match = _.find(persons , function(person) { return person.id === id });
  if(match)
      match[propName] = value;
}