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