Python 的总结以及如何将集合与向量相关联

Summatory with Python and how associate sets with vectors

我有一组节点:

nodes = ["uno","dos","tres","cuatro","cinco","seis"]

及其所有可能对的集合

pairs = [(i,j) for i in nodes for j in nodes if i!=j]

此外,我有这组对的矢量

d = [9, 26, 19, 13, 12, 11, 14, 26, 7, 18, 30, 19, 30, 24, 8, 21, 9,
         11, 22, 16, 14, 14, 8, 9, 20, 26, 1, 22, 24, 13]

此向量的每个元素都与该对集合的每个元素相关联。第一对是 9,第二对是 26,依此类推。

存在二进制变量

Z = mdl.binary_var_dict(pairs, name = "Z") 

与对组相关联

问题是我正在尝试编写表达式

sum((d[p]*Z[p]) for p in pairs)

但我不能那样做,因为向量 d 与这组对没有关联。

我必须怎么写? 提前致谢!

我不确定是否完全理解您的解释,但您似乎只需要同时迭代向量 d 不是吗?

prod = [d[i]*Z[p]) for i, p in enumerate(pairs)]
sum_ = sum(prod)