2014-02-05 3 views
1

Я не могу поверить, что я с трудом с этим, но мы здесь ... Это должно быть прямо вперед, вот мой код:Удаление ребро между двумя вершинами [igraph питона]

i = random.choice(ER.vs) 
j = random.choice(ER.vs) 

if t < 1: 
    ER.add_edge(i,j) 
else: 
    ER.delete_edges(ER.get_eid(i.index,j.index)) 

Последняя строка не работает. Я пробовал разные способы удаления края между i и j, но я не могу понять, как это работает. Может ли кто-нибудь помочь?

Cheers!

ответ

5

Для меня он работает с igraph0.6:

import random 
import igraph 

N = 10 
g = igraph.Graph.Full(N) 
i, j = random.sample(range(g.vcount()), 2) 
g.delete_edges([(i,j)]) 
print(g.ecount(), N*(N-1)/2) 

С выхода можно сделать вывод, что удалила один край:

44 45.0 
+0

О, я вижу, вы идете получить вершины Идентификаторы непосредственно (random.sample (диапазон (g.vcount()), 2)) вместо фактических узлов (random.choice (ER.vs)). Это должно сработать! Благодаря! – Rodolphe

Смежные вопросы