스마트 연락처 관리자
Coddy Python 여정의 논리와 흐름 섹션에 포함된 레슨. 78개 중 76번째.
챌린지
중급接触처 사전 목록을 처리하여 정리된 연락처 데이터베이스를 만드는 organize_contacts라는 함수를 작성하세요.
입력 목록의 각 연락처 사전에는 다음 키가 있습니다.
name: 사람의 이름email: 사람의 이메일 주소phone: 사람의 전화번호
함수는 다음을 수행해야 합니다.
- 중복 연락처(이메일 주소 또는 전화번호가 같은 연락처)를 제거하고, 처음 나온 항목을 유지합니다.
- 모든 이메일을 소문자로 표준화합니다.
- 유효하지 않은 이메일 주소가 있는 연락처를 제외합니다.
- 유효하지 않은 전화번호가 있는 연락처를 제외합니다.
- 정리된 연락처 사전의 목록을 반환합니다.
검증 규칙:
- 유효한 이메일: '@'와 '.'을 포함해야 하며, 공백이 없어야 합니다.
- 유효한 전화번호: 숫자가 정확히 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 컴파일러