Menu
Coddy logo textTech

Gestor de contactos inteligente

Parte de la sección Lógica y flujo 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 de 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 los contactos duplicados (contactos con el mismo correo electrónico o número de teléfono), conservando la primera aparición
  2. Estandarizar todos los correos electrónicos convirtiéndolos a minúsculas
  3. Filtrar los contactos con direcciones de correo electrónico no válidas
  4. Filtrar los contactos con números de teléfono no vá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 únicamente 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 los caracteres que no sean dígitos.

Entrada de ejemplo:

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. Crea funciones auxiliares para la validación
    # - Función para validar el formato de email
    # - Función para limpiar y validar números de teléfono
    
    # 2. Procesa cada contacto
    # - Limpia el email (minúsculas) y el teléfono (solo dígitos)
    # - Comprueba si el email y el teléfono son válidos
    # - Comprueba si hay duplicados
    
    # 3. Devuelve la lista de contactos limpia
    pass

Todas las lecciones de Lógica y flujo

Practica por tu cuenta: Compilador de Python online