将结构字段存储到向量中

问题描述 投票:0回答:1

我有使用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)))

我要执行的操作,我只需要'Workers'和'Task'的两个数组。对于工人显然,最后一位将为0,但我还需要Tasks的索引向量。我该如何存储

'assignment.RightMate()' 

单个向量中的值并仅打印这些值

python structure
1个回答
1
投票

使用list comprehension获取赋值的所有值。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)
© www.soinside.com 2019 - 2024. All rights reserved.