Menu
CoddyTech

智能联系人管理器

本课属于 Coddy Python 学习旅程的“逻辑与流程”单元。第 76 课,共 78 课。

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 在线编译器