如何添加相同的元素N次?

时间:2017-10-10 00:02:46

标签: python-3.x list

我有两个清单:

list1 = [1,2,6]
list2 = []

我有一个号码:N

如何将list1的数字附加到list2,以便list2的总和等于N.

例:

n = 10
list2 = [2,2,6]

我找不到添加2的方法,直到总和等于10

1 个答案:

答案 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的不同长度和数量。