C'est justement le but de mon message. Je ne veux pas forcement que vous me donniez le code mais que vous me donniez des éléments ou conseils pouvant m'aider à résoudre mon problème...
Version imprimable
Oui je pensais l'avoir fait désolé
je rappelle donc que le problème est sur cette partie du prgrmme.
et donc ce que j'ai fait :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 resultat=dict() for (i, r) in enumerate( ( compterMots("ABA"), compterMots("BCC"), ) ): for (m, c) in r: resultat.setdefault(m, [0,] * i).append(c) for v in resultat.values(): v.extend([0,] * (i - len(v) + 1)) print(resultat)
j'ai l'impression que mon problème se situe partir de cette endroit:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 def mot_dans_fichiers(liste_fichiers): resultat=dict() for i in range(len(liste_fichiers)): compterMots(liste_fichiers[i]) for (m, c) in range(len(liste_fichiers)): resultat.setdefault(m, [0,] * i).append(c) for v in resultat.values(): v.extend([0,] * (i - len(v) + 1)) print(resultat)
car ma boucle prend deux paramètres qui sont censé être mes textes, mais que mettre à la place..., J'ai essayé de mettre liste_fichiers[i] en paramètres car c'est ce qui me semblait logique mais ce la ne fonctionne pasCode:
1
2
3
4
5
6
7
8
9 for (m, c) in range(len(liste_fichiers)): resultat.setdefault(m, [0,] * i).append(c) for v in resultat.values(): v.extend([0,] * (i - len(v) + 1)) print(resultat)
Oui c'est n'importe quoi... essayez de comprendre ce que fait:
avant de vouloir y toucher.Code:
1
2
3
4
5
6
7
8 for (i, r) in enumerate( ( compterMots("ABA"), compterMots("BCC"), ) ): for (m, c) in r: resultat.setdefault(m, [0,] * i).append(c)
Le bon exercice à faire serait de ré-écrire çà avec le Python que vous maîtrisez: cela vous forcerait à comprendre ce qu'il se passe.
- W
Rebonjour, voici la solution au problème(qui est d'écrire une fonction prenant en paramètres une liste de fichier permettant de compter le nombre d'occurence de chaque mots dans chacun des fichier) au cas ou ca vous intéresses:
Code:
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 import re def mots_fichiers(nom_fichier): liste_finale = [] with open(nom_fichier, 'r') as fd: azerty = fd.read() mot = re.split('[^a-zA-Z0-9_éèàêùçî]', azerty) dic = {} for i in mot: if i != "": if i in dic: dic[i] += 1 else: dic[i] =1 for i in dic.items(): liste_finale.append([i[0], i[1]]) return liste_finale #numéro 5 def mots_dans_fichiers(liste_fichiers): resultat=dict() liste = [] listefinale = [] for i in range(len(liste_fichiers)): liste.append(mots_fichiers(liste_fichiers[i])) for (i, r) in enumerate(liste): for (m, c) in r: resultat.setdefault(m, [0,] * i).append(c) for v in resultat.values(): v.extend([0,] * (i - len(v) + 1)) listefinale.append(resultat) return listefinale def main (): print(mots_dans_fichiers(["C:\\Users\\Utilisateur\\Downloads\\test\\fichier.txt", "C:\\Users\\Utilisateur\\Downloads\\test\\fichier2.txt"])) if __name__ == '__main__': main()