Я сделал список кортежей, который представляет собой график такой, что (u,v,w)
является кортежем, чтобы представлять ребро между u
и v
и имеет значение веса w
:Изменение значения в списке кортежей
graph = [('A', 'B', 2.0), ('B', 'C', 1.5), ('A', 'D', 3.0), ('D', 'E', 5.0), ('E', 'F', 2.0), ('B', 'E', 4.0)]
I хотите иметь возможность изменять вес конкретного края, то есть u
и v
. Так, например, изменение веса края ('A','B')
от 2,0 до 10. Таким образом, я попытался с помощью перечисления, как следующее:
[i for i, v in enumerate(graph) if v[0] & v[1] == ('A','B')]
Этот не работает. Кроме того, я не уверен, что использование перечисления является самым простым способом здесь. Могу ли я получить некоторые идеи по улучшению этой линии? Спасибо
Вы злоупотребляете '&' в своем состоянии. Я подозреваю, что вы хотите '(v [0], v [1]) == ('A', 'B')'. – chepner