智能联系人管理器
本课属于 Coddy Python 学习旅程的“逻辑与流程”单元。第 76 课,共 78 课。
挑战
中等创建一个名为 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 在线编译器