我有两个清单:
list1 = [1,2,6]
list2 = []
我有一个号码:N
如何将list1的数字附加到list2,以便list2的总和等于N.
例:
n = 10
list2 = [2,2,6]
我找不到添加2的方法,直到总和等于10
答案 0 :(得分:0)
这可能有效:
list1 = [1,2,6]
list2 = []
n = 10
list1 = sorted(list1, reverse=True) # sort list descending order
for i in list1: # for each item in list1
list2.append(i) # add the item to list2
while not sum(list2) > n: # while sum of list2 is less than n
list2.append(i) # keep adding the same element
if sum(list2) > n: # if sum of list2 is more than n
list2.pop() # remove the last element added
list2.sort() # sort list ascending order
print(list2) # [2, 2, 6]
适用于给定的list1
。
可能需要测试list1
的不同长度和数量。