Добро пожаловать в переполнение стека!Поскольку вы разместили только часть своего кода, я должен догадаться, какие типы данных вы используете.Исходя из вывода, я предполагаю, что ваши Nodes
- строки, а ваши Arcs
- кортежи строк.
Ваша попытка очень близка, вы хотите, чтобы столбец from содержал в себе Окленд.Вы можете индексировать в кортеж так же, как и в массив, поэтому вам нужно сделать: a[0] == Nodes[0]
.
Ниже приведен автономный пример с первым битом ваших данных, в котором выводится следующее(обратите внимание, что я изменил на операторы печати python 3.x (с круглыми скобками)):
Вывод:
Auckland
('Auckland', 'Albany')
14
Код:
# Import PuLP modeller functions
from pulp import *
# Data
Nodes = ['Auckland',
'Wellington',
'Hamilton',
'Kansas City',
'Christchuch',
'Albany',
'Whangarei',
'Rotorua',
'New Plymouth']
Arcs = [('Auckland','Albany'),
('Auckland','Hamilton'),
('Auckland','Kansas City'),
('Auckland','Christchuch'),
('Wellington','Hamilton'),
('Hamilton','Albany'),
('Kansas City','Whangarei'),
('Christchuch','Rotorua')]
x1_vals = [1, 2, 3, 4, 5, 9, 11, 13]
x2_vals = [5, 1, 1, 1, 1, 1, 1, 1]
x1 = dict((Arcs[i], x1_vals[i]) for i in range(len(Arcs)))
x2 = dict((Arcs[i], x2_vals[i]) for i in range(len(Arcs)))
varFinal = sum([x1[a] * x2[a] for a in Arcs if a[0] == Nodes[0]])
print(Nodes[0])
print(Arcs[0])
print(varFinal)
На будущеесправка, ответы, скорее всего, будут получены, если вы включите код, который другие могут попытаться запустить (без внешних зависимостей данных), чтобы люди могли попытаться запустить его, исправить его и повторно опубликовать.