小编use*_*453的帖子

在line.split('+')[ - 1]中,方括号中的-1表示在Python中

我们假设我们有这个代码:

name = line.split('+')[-1]
Run Code Online (Sandbox Code Playgroud)

-1做什么?我已经在各种代码中看到它,但不知道它的作用是什么?如果有一个[0]或一个,那会有什么不同[1]

python syntax

10
推荐指数
1
解决办法
3万
查看次数

带有`itertools.combinations`的子集总和

我在python中有一个整数列表,可以这样说:

weight = [7, 5, 3, 2, 9, 1]
Run Code Online (Sandbox Code Playgroud)

我应该如何使用itertools.combinations查找这些整数存在的所有可能的总和子集。这样我就得到了(带有3个整数的所需输出的示例-weight = [7,5,3]:

sums = [ [7], [7+5], [7+3], [7+5+3], [5], [5+3], [3] ]
Run Code Online (Sandbox Code Playgroud)

与这些重量相关联,我还有另一个名为“行李箱”的数组,它是一个列表的列表,其中包含行李箱名称及其对应重量的格式:

luggages = [["samsonite", 7], ["Berkin", 5], ["Catelli", 3] .....]
Run Code Online (Sandbox Code Playgroud)

我以这种方式创建了一个称为权重的数组。

weight = numpy.array([c[1] for c in luggages]) 
Run Code Online (Sandbox Code Playgroud)

我可以这样做,因为需要行李名。我试图以这种方式使用itertools.combinations(根据建议):

comb = [combinations(weight, i) for i in range(len(luggages))]
Run Code Online (Sandbox Code Playgroud)

我的目标:鉴于max_weight = 23满足每个子集总和等于23 KG的条件的每个子集的所有组合的千克,打印出我可以带去旅行的所有可能的行李名子集。用简单的话来说,我必须打印出一张清单,上面列出行李的名称,如果将它们的重量相加,它们将max_weight = 23完全相同。注意:行李在每个子集中只能选择一次,但它们可以出现在尽可能多的子集中。同样,每个子集中的项目数量无关紧要:可以是1个行李箱,2、3 ...,只要它们的总和等于23。

python algorithm recursion

4
推荐指数
1
解决办法
1384
查看次数

标签 统计

python ×2

algorithm ×1

recursion ×1

syntax ×1