我有使用 Google-OR Solver 在 Python 中解決分配問(wèn)題的代碼。由于我是 Python 新手,因此在以通常的向量形式而不是復(fù)雜的結(jié)構(gòu)域形式存儲(chǔ)變量時(shí),我需要一些幫助。for i in range(0, assignment.NumNodes()):
print('Worker %d assigned to task %d. Cost = %d' % (i,assignment.RightMate(i), assignment.AssignmentCost(i)))我想要做什么我只想要'工人'和'任務(wù)'的兩個(gè)數(shù)組。對(duì)于工人很明顯,最后一個(gè)是 0,但我還需要任務(wù)索引的向量。我如何存儲(chǔ)這個(gè)'assignment.RightMate()'單個(gè)向量中的值并僅打印這些值
1 回答

達(dá)令說(shuō)
TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊
使用列表推導(dǎo)獲取 assignment.RightMate() 的所有值
assignment_list = [assignment.RightMate(i) for i in range(assignment.NumNodes()]
對(duì)于工人,您只需:
worker_list = list(range(assignment.NumNodes()))
解釋
列表推導(dǎo)等效于以下 for 循環(huán)(這是執(zhí)行此操作的另一種方法):
assignment_list = [] for i in range(assignment.NumNodes()): assignment_list.append(assignment.RightMate(i))
注意 range() 默認(rèn)從 0 開(kāi)始,所以:
range(0, X) is equivalent to range(X)
添加回答
舉報(bào)
0/150
提交
取消