Grouper des emails par domaine
Résoluokchf Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voila mon exercice python avec son exemple:
Écrire une fonction store_email(liste_mails)
qui reçoit en paramètre une liste d’adresses e-mail et qui renvoie un dictionnaire avec comme clés les domaines des adresses e-mail et comme valeurs les listes d’utilisateurs correspondantes, triées par ordre croissant (UTF-8).
Exemple :
L’appel de la fonction suivant :
mails = [ "jean@profs.ulb", "andre.colon@stud.ulb", "thierry@profs.ulb", "sébastien@prof.ur", "eric.ramzi@stud.ur", "bernard@profs.ulb", "ludo@prof.ur", ] store_email(mails)
... renvoie le dictionnaire :
{ 'prof.ur' : ['ludo', 'sébastien'], 'stud.ulb' : ['andre.colon'], 'profs.ulb' : ['bernard', 'jean', 'thierry'], 'stud.ur' : ['eric.ramzi'] }
Voila mon code :
d=([ "jean@profs.ulb", "andre.colon@stud.ulb", "thierry@profs.ulb", "sébastien@prof.ur", "eric.ramzi@stud.ur", "bernard@profs.ulb", "ludo@prof.ur", ]) s = sorted(d) data = dict({}) for i in range(0,len(d)): data[s[i]]= s[i] print(data)
Je ne comprends vraiment pas comment les clés doivent renvoyer des domaines des adresses emails et les valeurs des listes d'utilisateurs. Comment transformer le paramètre en ça ?
Merci en avance!
- Grouper des emails par domaine
- Ce programme est bloqué par une stratégie de groupe - Forum Windows
- Domaine wifi ✓ - Forum Réseau
- Cette adresse de messagerie fait partie d’un domaine réservé. entrez une autre adresse de messagerie - Forum Hotmail / Outlook.com
- Sortir un pc du domaine ✓ - Forum Windows serveur
- SORTIR UN PC DU DOMAINE - Forum Windows
2 réponses
Bonsoir, cela se fait avec la méthode split de la class str.
mails = [ "jean@profs.ulb", "andre.colon@stud.ulb", "thierry@profs.ulb", "sébastien@prof.ur", "eric.ramzi@stud.ur", "bernard@profs.ulb", "ludo@prof.ur", ] # s = sorted(d) # Inutile # data = dict({}) # Là tu crées un dictionnaire dans un autre dictionnaire data = {} # for i in range(0, len(d)): # Inutile d'utiliser un range, préfère parcourir directement la liste # data[s[i]] = s[i] # print(data) for mail in mails: # Séparation nom d'utilisateur et nom de domaine user_name, domain_name = mail.split('@') # Ajout au dict data data.setdefault(domain_name, []).append(user_name) # Tri de la liste data[domain_name].sort() from pprint import pprint pprint(data)
La liste étant très courte, cela n'a aucune incidence de trier juste après chaque insertion, en revanche avec des centaines, milliers d'entrées, il sera plus performant de trier après avoir insérer toutes les données dans data, avec un parcours donc des listes des valeurs de data.