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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : 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 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()
Partager