2013-06-10 9 views

cevap

7

Sen olarak vertexSeq belirli bir köşe erişerek tepe kimliği bulabilir 'a' bir köşe dizisi nesnesidir.

Böyle bir şey, hile yapmalıdır.

a[0].index 
11

Tamam, burada iki sorumuz var gibi görünüyor. Biri soru başlığındadır: "Vertex nesnesine sahipsek, köşe kimliğini nasıl bulabilirim"? Bu doğru answered by Siddharth: yalnızca köşe başının index özelliğini kullanabilirsiniz. Diğer soru ise soru şudur: "a ile b arasında bir kenar eklemek istiyorum, nasıl giderim?".

g.add_edge(a, b) 

Burada a ve b tip Vertex nesnesi olmadığı varsayılır: cevap Vertex nesneleri yanı sıra köşe kimliğini kabul add_edge yöntemi kullanmak için basitçe. Ancak, kod snippet'inizden yola çıkarak, esasen yapmak istediğiniz şey, adlarını bildiğiniz iki köşe arasında bir kenar eklemektir. Bu aynı zamanda yapmanız seçimi gibi çalışır ancak yalnızca ilk eşleşen köşe döndüren VertexSeq nesnelerin find yöntemi kullanılarak yapılabilir. Yani, sadece yapabilirsiniz: Eğer köşe adlarını saklamak için name köşe özelliğini kullanırsanız

g.add_edge(g.vs.find(Name="A"), g.vs.find(Name="B")) 

Daha da iyisi, (ve Name - büyük harf notu), hatta g.vs.find yürütmesini olmadan adını kendisi kullanabilir iGRAPH davranır beri name köşe özel öznitelik:

g.add_edge("A", "B") 
+1

Sadece denedim çünkü bir sıradan bir [0] yerine, yani add_edge (a [0], b [0]) kullanmak zorunda kaldım, teşekkürler! – Nikhil

+0

Ah, doğru, güncellemelerimi görün. –

İlgili konular