Menu
Coddy logo textTech

Gestore intelligente dei contatti

Fa parte della sezione Logica e flusso del percorso Python di Coddy. Lezione 76 di 78.

challenge icon

Sfida

Medio

Crea una funzione denominata organize_contacts che elabori un elenco di dizionari di contatti per creare un database di contatti pulito.

Ogni dizionario di contatto nell’elenco di input ha queste chiavi:

  • name: Il nome della persona
  • email: L’indirizzo email della persona
  • phone: Il numero di telefono della persona

La tua funzione dovrebbe:

  1. Rimuovere i contatti duplicati (contatti con la stessa email o lo stesso numero di telefono), mantenendo la prima occorrenza
  2. Convertire tutte le email in minuscolo
  3. Escludere i contatti con indirizzi email non validi
  4. Escludere i contatti con numeri di telefono non validi
  5. Restituire un elenco di dizionari di contatti ripuliti

Regole di convalida:

  • Email valida: Deve contenere '@' e '.', e non deve contenere spazi
  • Telefono valido: Deve contenere esattamente 10 cifre (ignora i caratteri non numerici come trattini o parentesi)

Per ripulire i numeri di telefono, dovresti usare il metodo str.isdigit() di Python per estrarre solo le cifre numeriche dai numeri di telefono. Questo metodo restituisce True se un carattere è una cifra (0-9) e False altrimenti, quindi è perfetto per filtrare i caratteri non numerici.

Esempio di input:

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

Output previsto:

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

Provalo tu

def organize_contacts(contact_list):
    # La tua soluzione qui
    
    # 1. Crea funzioni di supporto per la convalida
    # - Funzione per convalidare il formato dell'email
    # - Funzione per ripulire e convalidare i numeri di telefono
    
    # 2. Elabora ogni contatto
    # - Ripulisci l'email (in minuscolo) e il numero di telefono (solo cifre)
    # - Verifica che l'email e il numero di telefono siano validi
    # - Verifica la presenza di duplicati
    
    # 3. Restituisci la lista dei contatti ripulita
    pass

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Python online