Diferències entre digrafs i multidigrafs

  • Comparació línia a línia dels exemples sobre digrafs (a l’esquerra) i multidigrafs (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.DiGraph()					       	>>> g = nx.MultiDiGraph()

>>> 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)
False								False
>>> g.has_edge(3, 5)						>>> g.has_edge(3, 5)
False								False

>>> g.degree(2)							>>> g.degree(2)
3							       	4
>>> g.in_degree(2)						>>> g.in_degree(2)
2							       	3
>>> g.out_degree(2)						>>> g.out_degree(2)
1								1

>>> 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), (3, 4), (4, 5), (5, 2), (11, 10)]	       	[(1, 2, 0), (1, 2, 1), (2, 3, 0), (3, 4, 0), (4, 5, 0), (5, 2

>>> sorted(g.neighbors(2))					>>> sorted(g.neighbors(2))
[3]								[3]

>>> sorted(g[2])						>>> sorted(g[2])
[3]								[3]

>>> sorted(g.successors(2))					>>> sorted(g.successors(2))
[3]								[3]

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

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

>>> sorted(g.out_edges(2))					>>> sorted(g.out_edges(2))
[(2, 3)]							[(2, 3)]

>>> sorted(g.in_edges(2))					>>> sorted(g.in_edges(2))
[(1, 2), (5, 2)]					       	[(1, 2), (1, 2), (5, 2)]
>>> 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)]