Menu
Coddy logo textTech

Gestionnaire de contacts intelligent

Fait partie de la section Logic & Flow du Journey Python de Coddy. Leçon 76 sur 78.

challenge icon

Défi

Moyen

Créez une fonction nommée organize_contacts qui traite une liste de dictionnaires de contacts afin de créer une base de données de contacts propre.

Chaque dictionnaire de contacts de la liste d'entrée possède ces clés :

  • name : Le nom de la personne
  • email : L'adresse e-mail de la personne
  • phone : Le numéro de téléphone de la personne

Votre fonction doit :

  1. Supprimer les contacts en double (les contacts ayant le même e-mail ou numéro de téléphone), en conservant la première occurrence
  2. Mettre tous les e-mails en minuscules
  3. Écarter les contacts dont les adresses e-mail sont invalides
  4. Écarter les contacts dont les numéros de téléphone sont invalides
  5. Renvoyer une liste de dictionnaires de contacts nettoyés

Règles de validation :

  • E-mail valide : doit contenir « @ » et « . », et ne doit pas contenir d'espaces
  • Téléphone valide : doit contenir exactement 10 chiffres (ignorer les caractères non numériques tels que les tirets ou les parenthèses)

Pour nettoyer les numéros de téléphone, vous devez utiliser la méthode str.isdigit() de Python afin d'extraire uniquement les chiffres des numéros de téléphone. Cette méthode renvoie True si un caractère est un chiffre (0-9) et False dans le cas contraire, ce qui la rend parfaite pour filtrer les caractères non numériques.

Exemple d'entrée :

contacts = [
    {"name": "John Doe", "email": "john@email.com", "phone": "123-456-7890"}
]

Résultat attendu :

[
    {"name": "John Doe", "email": "john@email.com", "phone": "1234567890"}
]

Essayez vous-même

def organize_contacts(contact_list):
    # Votre solution ici
    
    # 1. Créer des fonctions d'aide pour la validation
    # - Fonction pour valider le format d'email
    # - Fonction pour nettoyer et valider les numéros de téléphone
    
    # 2. Traiter chaque contact
    # - Nettoyer l'email (minuscules) et le téléphone (chiffres uniquement)
    # - Vérifier si l'email et le téléphone sont valides
    # - Vérifier les doublons
    
    # 3. Retourner la liste de contacts nettoyée
    pass

Toutes les leçons de Logic & Flow

Entraînez-vous par vous-même : Compilateur Python en ligne