Python 程序获取所有具有 sum 的子集
当需要获取具有特定总和'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("名单是:") print(my_list) subset_sum = 53 print("结果是:") sub_set_sum(my_size, my_list, subset_sum)输出结果
名单是: [21, 32, 56, 78, 45, 99, 0] 结果是: [21, 32] [21, 32, 0]
解释
所需的包被导入到环境中。
定义了一个名为“sub_set_sum”的方法,它以列表的大小作为参数。
它遍历列表并使用“组合”方法来获取所有组合。
如果总和与特定值相同,则将其转换为列表并显示在控制台上。
在方法之外,定义了大小。
定义了一个列表并显示在控制台上。
定义了子集值。
通过传递所需的参数来调用该方法。
输出显示在控制台上。