首页 > 解决方案 > 如何使用索引从 python 列表中提取与短语匹配的值以放入另一个数组?

问题描述

我目前正在研究一种适用于任何大小 n 的优化,其中网络传输是具有约定“x_i_j”的名称,其中 i 是发送节点,j 是接收节点。

我有一个名为 x 的列表,其中包含所有相关的节点名称。

使用

x =['x_%d_%d'%(i,j) for i in range(dims+2) for j in range(dims+2) if (i,j) in costs]

n 是我感兴趣的点数,dims=n*2

我正在编写一个约束,它将是一个 2 数组,其中第一行具有我需要从给定条件的列表中过滤的“x_i_j”值。

我的起始数组的代码工作正常

start_constraint = [[x[i] for i in range(numvars)  if 'x_%d' %(dims) in x[i] ], [1 for i in range(numvars)  if 'x_%d' %(dims) in x[i]]]

output:
[['x_6_0', 'x_6_1', 'x_6_2'], [1, 1, 1]]

对于我的结束数组,我正在尝试提取“x_i_7”的实体

我目前正在尝试这种方式。

end_constraint = [[x[i] for i in range(numvars)  if 'x_%d_%d' %(i,dims+1) in x[i] ], [1 for i in range(numvars)  if 'x_%d_%d' %(i,dims+1) in x[i]]]

output: 
[[], []]

如果我为 %(i,dims+1) 输入值,例如 %(4,7),代码将输入那个值。

如何使用索引和循环来完成这项工作?

标签: pythonarrayslistloopsindexing

解决方案


推荐阅读