Diferències entre grafs i multigrafs

  • Comparació línia a línia dels exemples sobre grafs (a l’esquerra) i multigrafs (a la dreta).

  • Les línies destacades són les úniques que canvien.

  • Els canvis es concentren en el tractament de les arestes (add_edge(), edges(), degree()).

>>> import networkx as nx					>>> import networkx as nx

>>> g = nx.Graph()					       	>>> g = nx.MultiGraph()

>>> list(g.nodes)						>>> list(g.nodes)
[]								[]

>>> len(g)							>>> len(g)
0								0
>>> g.order()							>>> g.order()
0								0
>>> g.number_of_nodes()						>>> g.number_of_nodes()
0								0

>>> list(g.edges)						>>> list(g.edges)
[]								[]

>>> g.size()							>>> g.size()
0								0
>>> g.number_of_edges()						>>> g.number_of_edges()
0								0

>>> g.add_node(10)						>>> g.add_node(10)
>>> sorted(g.nodes)						>>> sorted(g.nodes)
[10]								[10]
>>> g.order(), g.size()						>>> g.order(), g.size()
(1, 0)								(1, 0)

>>> g.add_node(10)						>>> g.add_node(10)
>>> sorted(g.nodes)						>>> sorted(g.nodes)
[10]								[10]

>>> g.add_edge(1, 2)						>>> g.add_edge(1, 2)
							       	0

>>> sorted(g.nodes)						>>> sorted(g.nodes)
[1, 2, 10]							[1, 2, 10]

>>> sorted(g.edges)						>>> sorted(g.edges)
[(1, 2)]						       	[(1, 2, 0)]

>>> g.add_edge(1, 2)						>>> g.add_edge(1, 2)
							       	1
>>> sorted(g.edges)						>>> sorted(g.edges)
[(1, 2)]						       	[(1, 2, 0), (1, 2, 1)]

>>> g.add_nodes_from( [3, 4, 5, 11] )				>>> g.add_nodes_from( [3, 4, 5, 11] )
>>> sorted(g.nodes)						>>> sorted(g.nodes)
[1, 2, 3, 4, 5, 10, 11]						[1, 2, 3, 4, 5, 10, 11]
>>> g.order(), g.size()						>>> g.order(), g.size()
(7, 1)							       	(7, 2)

>>> g.add_edges_from( [(2,3), (3,4), (4,5), (5,2), (11,10)] )	>>> g.add_edges_from( [(2,3), (3,4), (4,5), (5,2), (11,10)] )
							       	[0, 0, 0, 0, 0]
>>> g.size()							>>> g.size()
6							       	7

>>> 1 in g							>>> 1 in g
True								True
>>> 8 in g							>>> 8 in g
False								False
>>> g.has_node(10)						>>> g.has_node(10)
True								True

>>> g.has_edge(1, 2)						>>> g.has_edge(1, 2)
True								True

>>> g.has_edge(2, 1)						>>> g.has_edge(2, 1)
True								True
>>> g.has_edge(3, 5)						>>> g.has_edge(3, 5)
False								False

>>> g.degree(2)							>>> g.degree(2)
3							       	4

>>> sorted(g)							>>> sorted(g)
[1, 2, 3, 4, 5, 10, 11]						[1, 2, 3, 4, 5, 10, 11]

>>> sorted(g.nodes)						>>> sorted(g.nodes)
[1, 2, 3, 4, 5, 10, 11]						[1, 2, 3, 4, 5, 10, 11]

>>> sorted(g.edges)						>>> sorted(g.edges)
[(1, 2), (2, 3), (2, 5), (3, 4), (4, 5), (10, 11)]	       	[(1, 2, 0), (1, 2, 1), (2, 3, 0), (2, 5, 0), (3, 4, 0), (4, 5

>>> sorted(g.neighbors(2))					>>> sorted(g.neighbors(2))
[1, 3, 5]							[1, 3, 5]

>>> sorted(g[2])						>>> sorted(g[2])
[1, 3, 5]							[1, 3, 5]

>>> sorted(g.edges(2))						>>> sorted(g.edges(2))
[(2, 1), (2, 3), (2, 5)]				       	[(2, 1), (2, 1), (2, 3), (2, 5)]

>>> nx.add_path(g, [1,2,3,5])					>>> nx.add_path(g, [1,2,3,5])

							       	>>> sorted(g[1])
							       	[2]
							       	>>> sorted(g[1][2])
							       	[0, 1, 2]
							       	>>> sorted(g.edges(1, keys=True))
							       	[(1, 2, 0), (1, 2, 1), (1, 2, 2)]