Python程式獲取所有和為s的子集
當需要獲取所有和為特定值's'的子集時,定義一個方法遍歷列表並獲取列表的所有組合,如果組合的和匹配目標值,則將其列印到控制檯。
示例
下面是演示
from itertools import combinations def sub_set_sum(size, my_array, sub_set_sum): for i in range(size+1): for my_sub_set in combinations(my_array, i): if sum(my_sub_set) == sub_set_sum: print(list(my_sub_set)) my_size = 6 my_list = [21, 32, 56, 78, 45, 99, 0] print("The list is :") print(my_list) subset_sum = 53 print("The result is :") sub_set_sum(my_size, my_list, subset_sum)
輸出
The list is : [21, 32, 56, 78, 45, 99, 0] The result is : [21, 32] [21, 32, 0]
解釋
將所需的包匯入到環境中。
定義一個名為'sub_set_sum'的方法,該方法將列表的大小和列表作為引數。
它遍歷列表並使用'combinations'方法獲取所有組合。
如果和與特定值相同,則將其轉換為列表並在控制檯顯示。
在方法外部,定義一個大小。
定義一個列表並在控制檯顯示。
定義一個子集值。
透過傳遞所需引數來呼叫該方法。
輸出顯示在控制檯上。
廣告