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 :

perdu dans l'algorithme


Sujet :

Python

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 133
    Par défaut perdu dans l'algorithme
    Bonjour,
    je suis perdu dans mom algorithme.
    Je suis parti d'un fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    C169v2-00002	Aster-06787	187	262	561	636       
    C169v2-04487	Aster-06725	92	235	216	357
    C169v2-04480	Aster-06724	371	431	4	64
    C169v2-04481	Aster-06792	2	447	41	488	
    C169v2-03069	Aster-04749	21	283	2	265
    C169v2-03068	Aster-01309	8	222	41	248
    C169v2-03061	Aster-06908	100	396	399	708
    et d' un fichier qu'on va nommer coco_cds:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    # Colonne 1: scaffold
    #         2: gene id
    #         3: start
    #         4: dir
    #         5: origine gene model
    #         6: proteinId
    #         7: ex-nom
    #         8: coordonnees genomiques
    #         9: structure intron/exon
    #        10: segments du CDS couvert par EST
    C169-scaffold_1	C169v2-00001	3777	-	ORIGINAL JGI	55057	Genemark1.1_g	3777..3857,4046..4192,4443..4561,4940..5234,5406..5540,5734..5847,6009..6098,6421..6492
    C169-scaffold_1	C169v2-00002	12682	-	ORIGINAL JGI	55058	Genemark1.2_g	12682..12691,13195..13445,13694..13711,18280..18410
    C169-scaffold_1	C169v2-00003	18095	+	ORIGINAL JGI	31905	fgenesh1_kg.1_#_1_#_4092_1_CBOZ_CBPA	18095..18097,18280..18410,18690..18972
    C169-scaffold_1	C169v2-00004	20452	+	ORIGINAL JGI	6968	gw1.1.615.1	20452..20496,20636..20726,20881..21046,21194..21382,21567..21735
    C169-scaffold_1	C169v2-00005	21893	-	ORIGINAL JGI	34662	fgenesh1_pm.1_#_3	21893..22051,22201..22293,22590..22747,22864..23102,23192..23364
    C169-scaffold_8	C169v2-04488	528365	+	ORIGINAL JGI	63423	Genemark1.4206_g	528365..528435,528774..528938,529294..529389,529779..530001,530348..530487,530870..530990
    C169-scaffold_8	C169v2-04487	523752	+	ORIGINAL JGI	42018	fgenesh1_pg.8_#_66	523752..523949,524383..524517,524819..524948,525371..525456,525763..525830,526605..526740,527270..527305
    C169-scaffold_5	C169v2-03069	1412897	+	ORIGINAL JGI	41001	fgenesh1_pg.5_#_204	1412897..1412909,1413103..1413155,1413409..1413531,1413634..1413748,1414228..1414427,1414721..1414891,1415181..1415381,1415548..1415679
    et d'un autre ayant la meme forme nommer atser_cds:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    # Colonne 1: scaffold
    #         2: gene id
    #         3: start
    #         4: dir
    #         5: origine gene model
    #         6: proteinId
    #         7: ex-nom
    #         8: coordonnees genomiques
    #         9: structure intron/exon
    #        10: segments du CDS couvert par EST
    scaffold_00001	Aster-00001	17594	-	ORIGINAL JGI	14863	gw1.00001.44.1	17594..17852,17997..18023,18357..18572,18689..18759,18842..18967
    scaffold_00001	Aster-00002	19928	-	ORIGINAL JGI	21312	e_gw1.00001.25.1	19928..20186,20453..20616,20744..20792,20913..21081,21507..21714
    scaffold_00001	Aster-00003	31765	+	ORIGINAL JGI	14113	gw1.00001.37.1	31765..31855,32261..32514,32748..32831,32917..32998,33154..33362,33646..33753
    scaffold_00001	Aster-00004	44240	-	ORIGINAL JGI	36055	fgenesh1_pg.00001_#_3	44240..44511,44793..44943,45050..45133,45256..45318,45686..45721,45782..45904,46025..46342,46459..46642,46822..46871
    scaffold_00001	Aster-00005	48441	+	ORIGINAL JGI	21325	e_gw1.00001.70.1	48441..48583,48791..48920
    scaffold_00101	Aster-04749	530046	+	ORIGINAL JGI	29654	e_gw1.00101.62.1	530046..530292,530743..530942,531299..531488,531763..532046
    scaffold_00145	Aster-06787	986197	-	ORIGINAL JGI	41618	fgenesh1_pg.00145_#_90	986197..986425,986528..986722,986990..987130,988711..988816,990091..990181,990354..990470,990778..990805,991167..991259,991536..991663,991869..991991,992198..992278,992360..992594,993369..993481,993632..993868
    Mon but du programme est de partir du premier fichier recuperer le couple de chaque ligne C169v2-00002 Aster-06787 ainsi de suite, et ensuite d'aller dans les fichiers respectifs pour C169v2-00002 dans coco_cds et pour Aster-06787 dans atser_cds.
    Ensuite regarder si il existe bien dans ces fcihiers et puis regarder si cest brin + ou - car si cest - je fais un reverse mais je vous expliquerai par la suite.
    je recupere les coordonnes par un split je fais un calcul de la distance puis je recupere a chaue fois lindice impair pour recuperer sa valeur.


    Le but final etant de repartir decrir dans un fichier C169v2-00002 "ici le nombre de valeur recuperer pour ce coco " Aster-06787 "ici les nombres de valeur recuperer pour ce aster"

    voici mon code il est tres gros car comme je suis nouveau en python je ne sais pas comment faire plus simple car je voualais mettre dans des dictionnaiere comme ca cetait plus simple pour chaque aster ou coco je pouvais remplir le fichier rapidement voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
     
    #! /usr/bin/python
     
     
    #coding=utf-8
     
    coco=[]
    aster=[]
    b2=[]
    d1={}
     
    with open('essai1.txt') as fic:
    	for ligne in fic:
    		chaine1 = ligne.split('\t')[:1]
    		chaine2= ligne.split('\t')[1:2]
    		coco.append(chaine1)
    		aster.append(chaine2)
     
     
    def rev(l): 
        if len(l) == 0: return [] 
        return [l[-1]] + rev(l[:-1]) 
     
    with open('coco_cds.txt') as fichier:
    	for line in fichier:
    		ch= line.split('\t')[1:2]
    		#print ch
    		if ch in coco:
    			brin=line.split('\t')[3:4]
    			if '+'in brin:	
    				cv=line.split('\t')[1:2]
    				#print cv
    				coord1=line.split('\t')[7:8]
    				#print coord1
    				#print sum([i.split('..')+[','] for i in coord[0].split(',')],[])
    				d=[(int(j)-int(i))/3 for i, j in [i.split("..") for i in coord1[0].split(",")]]#calcul de la distance
     
    				#print d
    				b = [1]
    				for i in d:
        					 b.append(b[-1]+i)
       					 b.append(b[-1]+1)
    				b.remove(b[-1])
     
    			        #print b
    				b2=[]
    				for i in range(len(b)):
     
    					 if (i%2!=0):
     
     
    						b2.append(b[i])
    						#print b2
     
    			else:
    				cv2=line.split('\t')[1:2]
    				coord2=line.split('\t')[7:8]
    				#print coord2
    				a= [(int(j)-int(i))/3 for i, j in [i.split("..") for i in coord2[0].split(",")]]#calcul de la distance
    			 	rev(a)
    				c=[1]
    				for i in a:
        					 c.append(c[-1]+i)
       					 c.append(c[-1]+1)
    				c.remove(c[-1])
     
    				for i in range(len(c)):
     
    					 if (i%2!=0):#impair
    						b2.append(c[i])
     
     
    with open('coco_cds.txt') as fichier:	        
    				for line in fichier:
    					ch= line.split('\t')[1:2]
    						if ch in aster:
    							brin=line.split('\t')[3:4]
    							if '+'in brin:	
    				cv=line.split('\t')[1:2]
    				#print cv
    				coord1=line.split('\t')[7:8]
    				#print coord1
    				#print sum([i.split('..')+[','] for i in coord[0].split(',')],[])
    				d=[(int(j)-int(i))/3 for i, j in [i.split("..") for i in coord1[0].split(",")]]#calcul de la distance
     
    				#print d
    				b = [1]
    				for i in d:
        					 b.append(b[-1]+i)
       					 b.append(b[-1]+1)
    				b.remove(b[-1])
     
    			        #print b
    				b2=[]
    				for i in range(len(b)):
     
    					 if (i%2!=0):#impair
     
     
    						b2.append(b[i])
    						#print b2
     
    			else:
    				cv2=line.split('\t')[1:2]
    				coord2=line.split('\t')[7:8]
    				#print coord2
    				a= [(int(j)-int(i))/3 for i, j in [i.split("..") for i in coord2[0].split(",")]]#calcul de la distance
    			 	rev(a)
    				c=[1]
    				for i in a:
        					 c.append(c[-1]+i)
       					 c.append(c[-1]+1)
    				c.remove(c[-1])
     
    				for i in range(len(c)):
     
    					 if (i%2!=0):#impair
    						b2.append(c[i])

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 729
    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 729
    Par défaut
    Salut,

    Chaque fois que vous répétez des lignes de codes plutôt que de passer par des fonctions, le nombre de lignes augmente, les petites variations nécessaires à traiter chaque cas se perdent dans la foule.

    C'est pareil côté données traitées.
    Vous partez d'une suite de fichiers i.e. une liste de lignes composées de listes de suites de caractères.... pour obtenir à peut près la même chose: çà reste à l'état de données, et ce n'est pas encore de l'information - informer c'est d'abord mettre en forme.

    C'est normal quand on débute, tout cela n'est pas naturel et on se laisse rapidement déborder.
    Que faire?
    Comparer les sections qui commencent par "with open('coco_cds.txt') as fichier:" et "with open('coco_cds.txt') as fichier:"
    Elles se ressemblent beaucoup!!! Même que c'est le même fichier d'entrée!!!

    Cà fait quoi?
    Vous éliminez les lignes qui ne vous intéressent pas (pas dans coco ou aster du ficher essaie1.txt)
    Plutôt que d'avoir un "if ch in coco" qui suscite un "où est le else?".
    Simplifiez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    with open('coco_cds.txt') as fichier:
        for line in fichier:
            ch= line.split('\t')[1:2]
    	#print ch
    	if ch not in coco: continue
            brin=line.split('\t')[3:4] # çà fait une indentation en moins...
    Après vous avez le cas brin_plus et le cas brin_moins qui devrait vous retourner une chose à ajouter dans b2 en fonction de line.
    Autrement dit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            if '+' in brin:
                r = brin_plus(line)
            else:
                r = brin_moins(line)
            for i in range(len(r)):
                if ( i%2 != 0): b2.append(r[i])
    Maintenant que vous avez quelque chose de plus compact, vous pouvez vous poser des questions comme:
    qu'est ce qui est différent dans le cas 'aster'? Et si on traite les brins de la même façon pourquoi ne pas avoir une fonction brin qui soit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    def brin(line):
          T=line.split('\t')[3:4] 
          if '+' in T:
                r = brin_plus(line)
          else:
                r = brin_moins(line)
          c = []
          for i in range(len(r)):
                     if ( i%2 != 0): c.append(r[i])
          return c
    Le reste devient alors:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    with open('coco_cds.txt') as fichier:
        for line in fichier:
            ch= line.split('\t')[1:2]
    	#print ch
    	if ch in coco or ch in aster:
                r = brin(line)
                for i in range(len(r)):
                     b2.append(r[i])
    Maintenant que c'est beaucoup plus compact, on peut réfléchir un peu et se dire tiens, mettre les trucs en tas dans une liste c'est pas génial car après pour retrouver ceux qui m'intéressent: galère!

    Comme les noms sont tous différents on peut les mettre dans un dico, genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    b2 = dict() # ah ah
    with open('coco_cds.txt') as fichier:
        for line in fichier:
            name = line.split('\t')[1:2] # puisque maintenant c'est le nom de...
    	#print ch
    	if name in coco or name in aster:
                b2[name] = brin(line)
    Ce qui est important avec cette mise en forme, c'est pas tellement que ça coûte "moins de lignes" c'est que ce qu'elles vous disent ce qu'elles font.

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

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 133
    Par défaut
    Bonjour, merci pour ta reponse voila en fait je me suis trompe dans mon precedent code car dans la partie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
     
    with open('atro_cds.txt') as fichier:	        
    				for line in fichier:
    					ch= line.split('\t')[1:2]
    						if ch in aster:
    							brin=line.split('\t')[3:4]
    							if '+'in brin:	
    				cv=line.split('\t')[1:2]
    				#print cv
    				coord1=line.split('\t')[7:8]
    				#print coord1
    				#print sum([i.split('..')+[','] for i in coord[0].split(',')],[])
    				d=[(int(j)-int(i))/3 for i, j in [i.split("..") for i in coord1[0].split(",")]]#calcul de la distance
     
    				#print d
    				b = [1]
    				for i in d:
        					 b.append(b[-1]+i)
       					 b.append(b[-1]+1)
    				b.remove(b[-1])
     
    			        #print b
    				b2=[]
    				for i in range(len(b)):
     
    					 if (i%2!=0):#impair
     
     
    						b2.append(b[i])
    						#print b2
     
    			else:
    				cv2=line.split('\t')[1:2]
    				coord2=line.split('\t')[7:8]
    				#print coord2
    				a= [(int(j)-int(i))/3 for i, j in [i.split("..") for i in coord2[0].split(",")]]#calcul de la distance
    			 	rev(a)
    				c=[1]
    				for i in a:
        					 c.append(c[-1]+i)
       					 c.append(c[-1]+1)
    				c.remove(c[-1])
     
    				for i in range(len(c)):
     
    					 if (i%2!=0):#impair
    						b2.append(c[i])
    donc ce nest pas le meme fcihier a chaque fois mais je pense que je peux creer une fonction pour ouvrir les fichier

    jai donc reduit mon code a ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
     
    #! /usr/bin/python
     
     
    #coding=utf-8
     
    coco=[]
    aster=[]
     
    d1={}
     
    b2=[]
     
     
    def rev(l): 
        if len(l) == 0: return [] 
        return [l[-1]] + rev(l[:-1]) 
     
     
     
    def brin(line):
     
          T=line.split('\t')[3:4]
     
          if '+' in T:
     
                r =line.split('\t')[1:2]
    	    coord1=line.split('\t')[7:8]
    	    d=[(int(j)-int(i))/3 for i, j in [i.split("..") for i in coord1[0].split(",")]]#calcul de la distance
    	    c = [1]
    	    for i in d:
        		c.append(c[-1]+i)
       		c.append(c[-1]+1)
    	    c.remove(c[-1])
          else:
     
                r = line.split('\t')[1:2]
    	    coord2=line.split('\t')[7:8]
     
    	    d= [(int(j)-int(i))/3 for i, j in [i.split("..") for i in coord2[0].split(",")]]#calcul de la distance
    	    rev(d)
    	    c=[1]
    	    for i in d:
        		c.append(c[-1]+i)
       		c.append(c[-1]+1)
    	    c.remove(c[-1])
     
     
     
          for i in range(len(c)):
                     if ( i%2 != 0): b2.append(c[i])
          return c 
     
    #def nom(fic):
    #	with open(fic) as fichier:
    #		for line in fichier:
     #       		name = line.split('\t')[1:2]
    #	return name
     
    with open('essai1.txt') as fic:
    	for ligne in fic:
    		chaine1 = ligne.split('\t')[:1]
    		chaine2= ligne.split('\t')[1:2]
    		coco.append(chaine1)
    		aster.append(chaine2)
     
     
     
     
     
     
     
     
    with open('coco_cds.txt') as fichier:
        for line in fichier:
            ch= line.split('\t')[1:2]
    	#print ch
    	if ch in coco or ch in aster:
                r = brin(line)
                for i in range(len(r)):
                     b2.append(r[i])


    J'ai un probleme avec ca car rien ne saffiche et surtout pour lautre fichier astro je ne sais pas si je dois faire la meme chose car ensuite pour mettre dans un dico je suis tjrs bloque


    Je suis aussi bloque dans la partie calcul de distance car je pense mettre jai mis dans le code mais je suis pas sur si cest bon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    coord1=line.split('\t')[7:8]
    				#print coord1
    				#print sum([i.split('..')+[','] for i in coord[0].split(',')],[])
    				d=[(int(j)-int(i))/3 for i, j in [i.split("..") for i in coord1[0].split(",")]]#calcul de la distance
     
    				#print d
    				b = [1]
    				for i in d:
        					 b.append(b[-1]+i)
       					 b.append(b[-1]+1)
    				b.remove(b[-1])
    a la suite du code
    Merci

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 133
    Par défaut
    Voici mon nouveau code qui a la fin j'obtiens la liste que je veux mais le souci cest que je melange trois lsites l
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [1, 4, 5, 88, 89, 94, 95, 138]
    [1, 66, 67, 111, 112, 155, 156, 184, 185, 207, 208, 253, 254, 265]
    [1, 5, 6, 23, 24, 64, 65, 103, 104, 170, 171, 227, 228, 294, 295, 338]
    en une seule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [4, 88, 94, 138, 66, 111, 155, 184, 207, 253, 265, 5, 23, 64, 103, 170, 227, 294, 338]
    mais le gros souci cest commet je met ces valeurs dans un dictinnaire en disant que Cv correspond a cette liste en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    with open('coco_cds.txt') as fichier:
        for line in fichier:
            ch= line.split('\t')[1:2]
     
    	if ch in coco:
    		ch1=ch
    		r = brin(line)
     
    		for i in range(len(r)):
                     	if ( i%2 != 0): 
    				b2.append(r[i])
    				chaine = str(b2)
    				d1[chaine] = ch1
    				print d1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
     
     mais je ne sais pas si cest la bonne idee car moi ce que je veux a la fin le numero de CV obtenu et en face la chaine que je viens de calculer pour luii
     
    voici le code total du programme
    #! /usr/bin/python
     
     
    #coding=utf-8
     
    coco=[]
    aster=[]
     
    d1={}
     
    b2=[]
     
     
    def rev(l): 
        if len(l) == 0: return [] 
        return [l[-1]] + rev(l[:-1]) 
     
     
     
    def brin(line):
     
          T=line.split('\t')[3:4]
     
          if '+' in T:
     
     
    	    coord1=line.split('\t')[7:8]
     
    	    d=[(int(j)-int(i))/3 for i, j in [i.split("..") for i in coord1[0].split(",")]]#calcul de la distance
     
    	    c = [1]
    	    for i in d:
        		c.append(c[-1]+i)
       		c.append(c[-1]+1)
    	    c.remove(c[-1])
     
          else:
     
     
    	    coord2=line.split('\t')[7:8]
     
     
    	    d= [(int(j)-int(i))/3 for i, j in [i.split("..") for i in coord2[0].split(",")]]#calcul de la distance
     
    	    c=[1]
    	    for i in d:
        		c.append(c[-1]+i)
       		c.append(c[-1]+1)
    	    c.remove(c[-1])
     
     
          return c 
     
     
    with open('essai1.txt') as fic:
    	for ligne in fic:
    		chaine1 = ligne.split('\t')[:1]
    		chaine2= ligne.split('\t')[1:2]
    		coco.append(chaine1)
    		aster.append(chaine2)
     
     
     
    with open('coco_cds.txt') as fichier:
        for line in fichier:
            ch= line.split('\t')[1:2]
     
    	if ch in coco:
    		ch1=ch
    		r = brin(line)
     
    		for i in range(len(r)):
                     	if ( i%2 != 0): 
    				b2.append(r[i])
    		chaine = str(b2)
    		d1[chaine] = ch1
    		print d1
    voici ce que jobtiens

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    {'[4, 88, 94, 138]': ['C169v2-00002']}
    {'[4, 88, 94, 138, 66, 111, 155, 184, 207, 253, 265]': ['C169v2-04487'], '[4, 88, 94, 138]': ['C169v2-00002']}
    {'[4, 88, 94, 138, 66, 111, 155, 184, 207, 253, 265]': ['C169v2-04487'], '[4, 88, 94, 138]': ['C169v2-00002'], '[4, 88, 94, 138, 66, 111, 155, 184, 207, 253, 265, 5, 23, 64, 103, 170, 227, 294, 338]': ['C169v2-03069']}

    il ny a que la derniere qui est bonne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {'[4, 88, 94, 138, 66, 111, 155, 184, 207, 253, 265]': ['C169v2-04487'], '[4, 88, 94, 138]': ['C169v2-00002'], '[4, 88, 94, 138, 66, 111, 155, 184, 207, 253, 265, 5, 23, 64, 103, 170, 227, 294, 338]': ['C169v2-03069']}









    cest bon cest le print qui etait mal place


    mais le souci que jai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    {"['C169v2-04487']": '[4, 88, 94, 138, 66, 111, 155, 184, 207, 253, 265]', "['C169v2-00002']": '[4, 88, 94, 138]', "['C169v2-03069']": '[4, 88, 94, 138, 66, 111, 155, 184, 207, 253, 265, 5, 23, 64, 103, 170, 227, 294, 338]'}
    {"['Aster-04749']": '[83, 150, 214, 309]', "['Aster-06787']": '[83, 150, 214, 309, 77, 142, 189, 225, 256, 295, 305, 336, 379, 420, 447, 526, 564, 643]'}

    il me rajoute la liste du precedent au suivant

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. perdu dans l'algorithme de la tour de Hanoi
    Par johnny3 dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 09/07/2008, 18h30
  2. Réponses: 2
    Dernier message: 17/09/2005, 17h43
  3. Perdu dans tous ces framework, mvc, et template
    Par __fabrice dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 02/09/2005, 12h00
  4. Perdu dans le traitement de string
    Par MatMeuh dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/09/2004, 11h34
  5. Perdue dans les Response.Write...
    Par Tapioca dans le forum ASP
    Réponses: 4
    Dernier message: 11/07/2004, 11h54

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