Menu
Coddy logo textTech

스마트 연락처 관리자

Coddy Python 여정의 Logic & Flow 섹션에 포함된 레슨 — 78개 중 76번째.

challenge icon

챌린지

중급

연락처 딕셔너리 리스트를 처리하여 깨끗한 연락처 데이터베이스를 만드는 organize_contacts라는 이름의 함수를 작성하세요.

입력 리스트의 각 연락처 딕셔너리는 다음과 같은 키를 가집니다:

  • name: 사람의 이름
  • email: 사람의 이메일 주소
  • phone: 사람의 전화번호

함수는 다음을 수행해야 합니다:

  1. 중복된 연락처(동일한 이메일 또는 전화번호를 가진 연락처)를 제거하고, 첫 번째로 나타나는 연락처만 유지합니다.
  2. 모든 이메일을 소문자로 표준화합니다.
  3. 유효하지 않은 이메일 주소를 가진 연락처를 걸러냅니다.
  4. 유효하지 않은 전화번호를 가진 연락처를 걸러냅니다.
  5. 정제된 연락처 딕셔너리 리스트를 반환합니다.

유효성 검사 규칙:

  • 유효한 이메일: '@''.'을 포함해야 하며, 공백이 없어야 합니다.
  • 유효한 전화번호: 정확히 10개의 숫자여야 합니다 (대시나 괄호와 같은 숫자가 아닌 문자는 무시합니다).

전화번호를 정제하려면 Python의 str.isdigit() 메서드를 사용하여 전화번호에서 숫자만 추출해야 합니다. 이 메서드는 문자가 숫자(0-9)인 경우 True를 반환하고 그렇지 않으면 False를 반환하므로, 숫자가 아닌 문자를 걸러내는 데 적합합니다.

입력 예시:

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

출력 예상 결과:

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

직접 해보기

def organize_contacts(contact_list):
    # 여기에 솔루션을 작성하세요
    
    # 1. 유효성 검사를 위한 헬퍼 함수 생성
    # - 이메일 형식을 검사하는 함수
    # - 전화번호를 정리하고 검사하는 함수
    
    # 2. 각 연락처 처리
    # - 이메일 정리(소문자) 및 전화번호 정리(숫자만)
    # - 이메일과 전화번호가 유효한지 확인
    # - 중복 확인
    
    # 3. 정리된 연락처 목록 반환
    pass

Logic & Flow의 모든 레슨