In [1]:
reseau1 = [ [0, 0, 0, 0],
            [1, 0, 0, 0],
            [1, 1, 0, 1],
            [1, 1, 0, 0]
          ]
In [2]:
reseau2 = [ [0, 1, 1, 0, 1],
            [1, 0, 0, 0, 0],
            [1, 0, 0, 0, 0],
            [0, 0, 1, 0, 1],
            [0, 1, 0, 0, 0]
          ]
In [3]:
def les_sensuniques(reseau, villes):
    """
    reseau -- matrice traduisant la présence de routes 
    villes -- liste des noms des villes (même ordre que pour la matrice)
    
    renvoie la liste des routes à sens unique sous la forme de tuples
    """
    n = len(reseau) # nombre de villes
     
    routes = []
    
    for i in range(n): 
        for j in range(n):
            if reseau[i][j] == 1:
                if reseau[j][i] == 0:
                    routes.append((villes[i], villes[j]))
    return routes
            
            
In [4]:
les_sensuniques(reseau1, ['a', 'b', 'c', 'd'])
Out[4]:
[('b', 'a'), ('c', 'a'), ('c', 'b'), ('c', 'd'), ('d', 'a'), ('d', 'b')]
In [5]:
les_sensuniques(reseau2, ['A', 'B', 'C', 'D', 'E'])
Out[5]:
[('A', 'E'), ('D', 'C'), ('D', 'E'), ('E', 'B')]
In [ ]: