IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Lecture d'un graphe sous forme de fichier texte


Sujet :

Python

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 7
    Par défaut Lecture d'un graphe sous forme de fichier texte
    Bonjour à tous,

    Novice en python, je sollicite votre aide sur un programme que je dois réaliser. J'ai un fichier texte qui détaille la liste des nœuds d'un graphe et des liens entre les nœuds sous la forme suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    1 2
    1 3
    3 2
    3 4
    4 3
    correspondant au graphe suivant :
    Nom : graphe.jpg
Affichages : 409
Taille : 13,4 Ko

    Sauf qu'en réalité j'ai 1000 nœuds. Je dois faire des calculs de similarité sur l'ensemble des nœuds de ce graphe et pour cela j'ai besoin de récupérer pour chaque nœud N une liste qui contient tous les nœuds pointés par ce nœud N ainsi qu'une deuxième liste contenant tous les nœuds qui pointent vers ce nœud N. Je précise que je dois me contenter de la bibliothèque standard de python.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    with open('graph.txt', 'r') as file :
        lines = file.readlines()
    for line in lines:
        print(list(line))
    J'ai essayé de lire le fichier ligne par ligne et de le transformer en liste pour travailler à partir de cela mais je n'arrive pas à conceptualiser la marche à suivre pour récupérer mes 2 listes par nœud...

    Merci d'avance pour votre aide !

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par martin56 Voir le message
    mais je n'arrive pas à conceptualiser la marche à suivre pour récupérer mes 2 listes par nœud...
    Des dictionnaires où les clefs sont les nœuds et les valeurs sont les ensembles des nœuds suivants ou précédents... sera probablement la structure la plus adaptée.
    Mais si vous n'avez jamais vu ces structures de données (de base du langage), pas facile de penser "avec".

    Après si le but de l'exercice est de vous faire jouer avec des listes de listes et les boucles imbriquées, vous pouvez créez une liste L à 1000 positions. Chaque position correspond à un nœud n et L[n] donne la liste de... éventuellement vide.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 7
    Par défaut
    Merci pour votre réponse. Je suis tout à fait d'accord sur l'utilisation de dictionnaires pour stocker les nœuds suivants et précédents qui me semble toute indiquée mais ma question porte plutôt sur la manière de passer de mon fichier texte à ces dictionnaires. Il faudrait que j'ai une boucle qui, à chaque nouveau nœud lu dans le fichier texte, créé une nouvelle clé dans mon dictionnaire et ajoute dans la liste en valeur le nœud suivant. Cependant je n'arrive pas à trouver comment extraire les numéros de nœuds selon ce principe.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par martin56 Voir le message
    Cependant je n'arrive pas à trouver comment extraire les numéros de nœuds selon ce principe.
    Les lignes sont juste des chaines de caractères où les 2 nœuds sont séparés par un espace.
    Et les chaines de caractères sont des structures de données encore plus de base que liste, dictionnaires et ensembles... ouvrez un tuto!

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. [phpBB][2] Récupérer sous forme de fichier html le code analysé
    Par ilood dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 07/02/2008, 17h28
  2. Réponses: 2
    Dernier message: 27/06/2007, 10h22
  3. Accents mal encodes apres sauvegarde sous forme de fichier
    Par KillMePlease dans le forum Langage
    Réponses: 5
    Dernier message: 03/11/2006, 15h01
  4. Download automatique d'un flux sous forme de fichier.
    Par Invité dans le forum Langage
    Réponses: 4
    Dernier message: 11/10/2006, 16h53
  5. Exportattion de données sous forme de fichiers
    Par bidson dans le forum XMLRAD
    Réponses: 20
    Dernier message: 08/06/2004, 13h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo