#python #arrays #list #loops #indexing
#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
Я пишу ограничение, которое будет представлять собой массив размером n на 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), код вставит это одно значение.
Как я могу заставить это работать, используя индексацию и цикл?
Комментарии:
1. Есть ли у вас образец ввода и ожидаемый результат для совместного использования?
2.
x = ['x_0_3', 'x_1_4', 'x_2_5', 'x_3_1', 'x_3_2', 'x_3_7', 'x_4_0', 'x_4_2', 'x_4_7', 'x_5_0', 'x_5_1', 'x_5_7', 'x_6_0', 'x_6_1', 'x_6_2']
и для вывода end_constraint требуетсяend_constraint = [['x_3_7', 'x_4_7', 'x_5_7'],[1,1,1]]
также n = 3 и dims = 6 для этого сценария и numbers = 15