Menu
Coddy logo textTech

Gestor de contactos inteligente

Parte de la sección Logic & Flow del Journey de Python de Coddy — lección 76 de 78.

challenge icon

Desafío

Intermedio

Crea una función llamada organize_contacts que procese una lista de diccionarios de contactos para crear una base de datos de contactos limpia.

Cada diccionario de contacto en la lista de entrada tiene estas claves:

  • name: El nombre de la persona
  • email: La dirección de correo electrónico de la persona
  • phone: El número de teléfono de la persona

Tu función debe:

  1. Eliminar contactos duplicados (contactos con el mismo correo electrónico o número de teléfono), manteniendo la primera aparición
  2. Estandarizar todos los correos electrónicos a minúsculas
  3. Filtrar los contactos con direcciones de correo electrónico inválidas
  4. Filtrar los contactos con números de teléfono inválidos
  5. Devolver una lista de diccionarios de contactos limpios

Reglas de validación:

  • Correo electrónico válido: Debe contener '@' y '.', y no debe tener espacios
  • Teléfono válido: Debe contener exactamente 10 dígitos (ignora los caracteres que no sean dígitos como guiones o paréntesis)

Para limpiar los números de teléfono, debes usar el método str.isdigit() de Python para extraer solo los dígitos numéricos de los números de teléfono. Este método devuelve True si un carácter es un dígito (0-9) y False en caso contrario, lo que lo hace perfecto para filtrar caracteres que no sean dígitos.

Ejemplo de Entrada:

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

Salida Esperada:

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

Pruébalo tú mismo

def organize_contacts(contact_list):
    # Tu solución aquí
    
    # 1. Crear funciones auxiliares para la validación
    # - Función para validar el formato del correo electrónico
    # - Función para limpiar y validar números de teléfono
    
    # 2. Procesar cada contacto
    # - Limpiar el correo electrónico (minúsculas) y el teléfono (solo dígitos)
    # - Comprobar si el correo electrónico y el teléfono son válidos
    # - Comprobar si hay duplicados
    
    # 3. Devolver la lista de contactos limpia
    pass

Todas las lecciones de Logic & Flow