Изменение отдельных атрибутов вершин в python igraph

для данного графика g Я не могу изменить индивидуальный атрибут вершины (в этом случае 'color'):

from igraph import Graph

# create triangle graph
g = Graph.Full(3)

cl_blue = (0,0,.5)
cl_red = (.5,0,0)

g.vs['color'] = 3*[cl_blue]
g.vs['color'][0] = cl_red

после этого, print g.vs['color'] по-прежнему дает

[(0, 0, 0.5), (0, 0, 0.5), (0, 0, 0.5)]

как я могу назначить значения для отдельных элементов?

1 ответов


вы просто делаете это задом наперед... do

g.vs[0]['color'] = cl_red

извините, должно быть более описательным.

g.vs['color'] возвращает список всех атрибутов узла. Это не фактические атрибуты - это копия, поэтому ее изменение не имеет никакого эффекта.

g.vs[0] возвращает фактическую вершину 0. Затем можно изменить его атрибуты с помощью интерфейса dictionary.