Bonjour à tous,
je dispose de deux dictionnaires que je veux comparer, voici un exemple des données qui me permettent de construire mes dicos :
AAAAABBB _____1
CCCCAAAA_____ 2
BABABABAB _____4
ABACBABCB_____ 3
ABABCABCB _____6
BBAACCCAA _____2
En fait je dipose d'un 1er fichier contenant des motifs (chaînes de caractères) et l'occurence du motif. Le second fichier contient lui aussi des motifs et l'occurence mais en plus grand nombre (tous les motifs du 1er fichier ainsi que des motifs supplémentaires). Ce que je veux, c'est écrire dans un fichier le nom de mes motifs communs aux deux fichiers (c'est à dire tous les motifs du 1er fichier) ainsi que le nombre d'occurence dans le fichier 2, et le nombre d'occurence dans le fichier 1, quelque chose comme ça :
TTTCGCGA_____ 1 _____ 2
TTTCGCGC_____ 2 _____ 2
AGAGGACC_____ 4 _____ 5
TTTCGCGG_____ 3 _____ 4
CGTCCTCT_____ 6 _____ 7
ACCTACTG_____ 2 _____ 3
Voici comment j'ai procédé :
Je test si le motif du dico1 est présent dans le dico2, si oui j'écris ce motif et son nombre d'occurences (du fichier 1 toujours) + le nombre d'occurences correspondant dans le fichier2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 for (i,j),(k,l) in zip(dico1.items(),dico2.items()): if i in dico2: output.write(i+'\t' + str(j) + '\t' + str(l) + '\n')
Mon problème est qu'en output l'occurence des motifs du second fichier (str(l) dans mon code) n'est pas du tout la bonne, elle ne correspond pas avec l'occurence du fichier de départ. Y a t'il un problème dans mon test ?
Merci à vous
Partager