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 :

problème dictionnaire python3 débutant


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 3
    Par défaut problème dictionnaire python3 débutant
    Bonjour,
    actuellement débutant en python3 j'aurais besoin d'aide pour un exercice.
    En effet j'ai un fichier "gène csv" avec dedans des lignes d'espèces avec un gène précis.
    Un petit exemple pour mieux voir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    sacs            chro    SUSAZ_00115     complement(15609..16733)                cysteine desulfurase            Genes.78052
    sacs            chro    SUSAZ_00120     complement(16720..18426)                AMP-dependent synthetase        K01895  Genes.23416
    sacs            chro    SUSAZ_00125     complement(18438..18914)                nucleotide binding protein PINc K07060  Genes.790508
    sacs            chro    SUSAZ_00130     complement(18904..19650)                inorganic polyphosphate/ATP-NAD kinase  K00858  Genes.275996
    sacs            chro    SUSAZ_00135     complement(19659..19943)                hypothetical protein            Genes.791779
    sacs            chro    SUSAZ_00140     20092..21093            ferredoxin--NADP reductase      K00384  Genes.145309
    Sacs est une espèces parmi les 2800, j'aimerai faire un dictionnaire de type set avec en clef le nom de l'espèce (ici sacs, mais les autres espèces aussi) et en valeur leurs gène (ici Genes.78052 , Genes.23416 etc etc)
    De ce style là : dico[sacs]= 'Genes.145309', 'Genes.791779' ...
    Hors je ne comprends pas cela veut pas et j'ai beau chercher sur internet je ne trouve pas de solution :/ Votre aide sera la bienvenue.

    Je vous montre mon script actuel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    import re
    from collections import defaultdict
    dicoesp= defaultdict(set) #dictionnaire d'espece
    with open('genes.csv', 'r') as F1:
        for ligne in F1:
            lignepropre=ligne.rstrip('\n')
            lignesplit=lignepropre.split('\t')
            #print(lignesplit[0])
            #print(lignesplit[-1])
            a=lignesplit[0]
            b=lignesplit[-1]
            dicoesp[a]={b}
    print(dicoesp['sacs'])
    #pour essayer avec une seule espèce et voir si cela marché, pour l'instant cela m'affiche rien de concluant

    Merci d'avance

  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 yozakine Voir le message
    Hors je ne comprends pas cela veut pas et j'ai beau chercher sur internet je ne trouve pas de solution
    Pour trouver une solution, il faut déjà énoncer le problème pour avoir une idée sur quoi chercher...
    Si vos variables a et b sont correctes, la question à se poser pourrait être "comment ajouter b au set associé à dicoesp[a]?" ou "comment s'utilise un defaultdict(set)?".

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

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 832
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par yozakine Voir le message
    et j'ai beau chercher sur internet je ne trouve pas de solution
    Ben oui. Internet ne te donnera que des idées "générales" pour traiter des données, pas des solutions spécifiques à ton souci spécifique (sauf cas exceptionnel où ton truc spécifique est en fait un truc tellement déjà fait que la solution est alors donnée mais vu le cas d'espèce, ça métonnerait fort).
    Donc par exemple telle méthode permettra de faire telle opération de base, telle autre méthode te permettra de faire telle autre opération. A toi de décomposer ton problème spécifique en opérations élémentaires successives, puis appliquer ensuite les méthodes élémentaires pour exécuter lesdites opérations.
    Citation Envoyé par yozakine Voir le message
    cela veut pas
    Ici, en admettant que "a" et "b" contiennent les bonnes infos (et déjà donc là peut-être qu'un print() permettrait de le vérifier), ta seule erreur est dans l'écriture dicoesp[a]={b}. En effet, que se passe-t-il pour les anciennes valeurs de "x" quand tu écris x=y ? Est-ce que cela correspond à la notion de "rajouter dans x la valeur de y aux autres valeurs s'y trouvant déjà" ??? C'est pourtant un truc qui aurait dû te sauter à la figure au moment où tu l'écrivais quoi. Tu es sensé te repésenter dans ton esprit l'action de chaque instruction que tu écris au moment où tu l'écris ; pas d'écrire des trucs "au petit bonheur" en "espérant" que "cela voudra bien"...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Composant Edit, problème de syntaxe [débutant]
    Par hepha1970 dans le forum Débuter
    Réponses: 2
    Dernier message: 22/08/2007, 16h36
  2. Problème de classe (débutant)
    Par Tober dans le forum Débuter
    Réponses: 13
    Dernier message: 01/08/2007, 12h34
  3. problème d'un débutant sur un formulaire
    Par cuicuicui dans le forum Langage
    Réponses: 4
    Dernier message: 17/04/2007, 15h55
  4. Petit problème en C++ (débutant)
    Par Ryan_ dans le forum Développement 2D, 3D et Jeux
    Réponses: 4
    Dernier message: 01/11/2006, 21h26
  5. Problème de collections [débutant]
    Par jackin dans le forum Langage
    Réponses: 5
    Dernier message: 10/07/2006, 14h04

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