list1 = [5,8]
list2 = [4,4,2,3,6]
這是很容易通過使用powerset函數
def powerset(iterable):
"powerset([1,2,3]) -->() (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)"
s = list(iterable)
return chain.from_iterable(combinations(s, r) for r in range(len(s)+1))
8可以由[4,4]
或[2,6]
得到在list2
的5和8的組合,但5只能是由[2,3]
組成。如果我選擇[2,6]
爲8,則list2
中沒有5的組合。
如何獲得[4,4]
8和[2,3]
5?我想在list1
中選擇儘可能多的list2
組合。實際上list1
中的數字可能由list2
中的3個或更多數字組成。
實際問題比較困難,因爲可能有一些數字在list1
中未使用,而list1
中的數字可能包含3個或更多數字。
這是怎麼回事? –
非常感謝,但如果選擇[2,6]爲8,則列表2中沒有可能的組合5,這是我的問題。我想爲列表1中的數字儘可能選擇list2中的組合。 – goldmonkey