我有使用 Google-OR Solver 在 Python 中解决分配问题的代码。由于我是 Python 新手,因此在以通常的向量形式而不是复杂的结构域形式存储变量时,我需要一些帮助。for i in range(0, assignment.NumNodes()):
print('Worker %d assigned to task %d. Cost = %d' % (i,assignment.RightMate(i), assignment.AssignmentCost(i)))我想要做什么我只想要'工人'和'任务'的两个数组。对于工人很明显,最后一个是 0,但我还需要任务索引的向量。我如何存储这个'assignment.RightMate()'单个向量中的值并仅打印这些值
1 回答
达令说
TA贡献1821条经验 获得超6个赞
使用列表推导获取 assignment.RightMate() 的所有值
assignment_list = [assignment.RightMate(i) for i in range(assignment.NumNodes()]
对于工人,您只需:
worker_list = list(range(assignment.NumNodes()))
解释
列表推导等效于以下 for 循环(这是执行此操作的另一种方法):
assignment_list = [] for i in range(assignment.NumNodes()): assignment_list.append(assignment.RightMate(i))
注意 range() 默认从 0 开始,所以:
range(0, X) is equivalent to range(X)
添加回答
举报
0/150
提交
取消