首先,我需要在 python 中使用 map 函数而不是理解来实现多处理
我的列表理解的初始版本如下
t3List = [x for x in rowCost if ( cost[t1][t2]+cost[rowCost.index(x)][tour[ tour.index(rowCost.index(x)) - 1 ] ]-cost[t2][rowCost.index(x)]-cost[t1][tour[ tour.index(rowCost.index(x)) - 1 ] ]>0 and rowCost.index(x) !=t1 and rowCost.index(x) != t2 and rowCost.index(x) != tour[ tour.index(t2)+1] and x<cost[t1][t2] ) ]
为了更多的理解t1
,t2
只是顶点。例如 , 的值t1
分别t2
为 34,21。
rowcost
是一个列表,其中包含从一个顶点到每个其他顶点的距离。
tour
只是我必须旅行的一些顶点顺序(基本上我正在解决 tsp )
这里所有的变量都是局部的。cost
就像所有顶点的对称成本矩阵。
对于大量顶点,这个列表需要 0.5 到 1 秒来计算。所以我打算在看到这个后实现多处理
我知道 map 函数将第一个参数作为函数。
但是要实现上述理解,这个函数必须有多个参数,因为所有变量都是局部的。
如何解决这个问题呢?非常感谢任何帮助。