Menu
CoddyTech

스마트 연락처 관리자

Coddy Python 여정의 논리와 흐름 섹션에 포함된 레슨. 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

논리와 흐름의 모든 레슨

직접 연습해 보세요: 온라인 Python 컴파일러