스마트 연락처 관리자
Coddy Python 여정의 논리와 흐름 섹션에 포함된 레슨. 78개 중 76번째.
챌린지
중급organize_contacts라는 이름의 함수를 만들어 contact 딕셔너리 목록을 처리하여 clean contact 데이터베이스를 생성하세요.
입력 목록의 각 contact 딕셔너리에는 다음 키가 있습니다:
name: 사람의 이름email: 사람의 이메일 주소phone: 사람의 전화번호
함수는 다음 작업을 수행해야 합니다:
- 중복 contact(동일한 이메일 또는 전화번호를 가진 contact)를 제거하고 첫 번째 항목을 유지
- 모든 이메일을 lowercase로 표준화
- valid하지 않은 이메일 주소를 가진 contact를 filter
- valid하지 않은 전화번호를 가진 contact를 filter
- clean contact 딕셔너리의 목록을 Return
validation 규칙:
- valid email: '@'와 '.'을 포함해야 하며, 공백이 없어야 함
- valid phone: 정확히 10개의 digits를 포함해야 함(대시나 괄호와 같은 숫자가 아닌 문자는 무시)
전화번호를 clean하려면 Python의 str.isdigit() 메서드를 사용하여 전화번호에서 숫자 digits만 추출해야 합니다. 이 메서드는 문자가 숫자(0-9)이면 True를, 그렇지 않으면 False를 Return하므로 숫자가 아닌 문자를 filter하는 데 적합합니다.
예시 입력:
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 컴파일러