bonjour,
voila je débute et en python et j' ai quelques souci avec un exercice, l'exercice est le suivant:
Le dictionnaire contenu dans le fichier dico,txt n'a aucun mot accentué;Cependant il a été constitué a partir de mot avec accent.Des lors,il contient des "doublons". Par exemple le mot réformer et reformer sont tous deux écrit reformer`
Je dois concevoir un programme qui a 2 contraintes:
-Lire le fichier dico.txt et créer le fichier dico_sans_doublons.txt
-Pour chaque mot lu dans le dictionnaire d'origine.Le programme doit écrire ce mot dans le fichier dico_sans_doublons.txt a condition que ce mot ne soit pas déjà présent!
je sait comment faire pour la première contraintes mais je suis bloque pour la deuxième si vous pourriez m'aider svp.
# list
Posté par François GUÉRIN (Mastodon) . Évalué à 2.
[^] # Re: list
Posté par j_m . Évalué à 2. Dernière modification le 12 janvier 2017 à 19:25.
Ca devrait être plus rapide avec un set plutôt qu'une liste. En effet, la complexité d'un not in est O(n) pour une liste et O(1) pour un set.
Pour la complexité algorithmique des différentes méthodes pour les différentes structure de données, j'ai trouvé ça: https://wiki.python.org/moin/TimeComplexity
[^] # Re: list
Posté par GuieA_7 (site web personnel) . Évalué à 4.
Voire:
PS: attention sur un set c'est add(), pas append().
[^] # Re: list
Posté par GuieA_7 (site web personnel) . Évalué à 2.
Rah je suis fatigué désolé:
return set(dico.iterkeys()) # dico.keys()
[^] # Re: list
Posté par GuieA_7 (site web personnel) . Évalué à 2.
Bon de toutes les façons c'est très bête ce que je dis, si dico est bien un 'dict', ses clés ne peuvent évidemment pas être dupliquées. Du coup "set(ton_iterable_avec_doublons)".
# Regarder les datastructures
Posté par j_m . Évalué à 2. Dernière modification le 12 janvier 2017 à 19:07.
Moi je passerai par les datastructures, c'est assez important de bien les connaitre. https://docs.python.org/3/tutorial/datastructures.html
Je lirai les mots les uns après les autres et les mettrais dans un set, ensuite je parcours les éléments du set un par un et je l'écris dans dico_sans_doublons.txt.
En effet, le set est une structure de données qui ne contient pas de doublons. Si tu lui ajoutes un objet qu'il connait déjà il va écraser l'ancien et n'en garder qu'un. Par contre il ne doit pas se souvenir de l'ordre d'insertion, je pense: c'est pas une liste.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.