📅  最后修改于: 2023-12-03 14:51:33.176000             🧑  作者: Mango
本文介绍一个程序,能够帮助用户查找联系人列表中相同的联系人。
读取联系人列表,并将其转化成字典类型,可以采用如下数据结构:
contact_list = [
{'name': '张三', 'phone': '13311112222', 'email': 'zhangsan@example.com'},
{'name': '李四', 'phone': '13311113333', 'email': 'lisi@example.com'},
{'name': '王五', 'phone': '13311114444', 'email': 'wangwu@example.com'},
{'name': '王五', 'phone': '13311115555', 'email': 'wangwu@example.com'},
{'name': '赵六', 'phone': '13311116666', 'email': 'zhaoliu@example.com'},
]
根据用户输入的查询条件,筛选出符合条件的联系人,并将其存储到一个新的列表中。
对于存在多个相同联系人的情况,按照用户指定的排序方式进行排列,具体实现可以采用 sorted
函数。
以下是一个例子,演示了如何在联系人列表中查找相同的联系人:
# 导入搜索模块
from search.contacts import ContactsSearcher
# 初始化搜索器
searcher = ContactsSearcher()
# 读取联系人列表
contacts = [
{'name': '张三', 'phone': '13311112222', 'email': 'zhangsan@example.com'},
{'name': '李四', 'phone': '13311113333', 'email': 'lisi@example.com'},
{'name': '王五', 'phone': '13311114444', 'email': 'wangwu@example.com'},
{'name': '王五', 'phone': '13311115555', 'email': 'wangwu@example.com'},
{'name': '赵六', 'phone': '13311116666', 'email': 'zhaoliu@example.com'},
]
# 设置查询条件
searcher.set_query(name='王五')
# 根据姓名查询相同的联系人
result = searcher.search(contacts)
# 输出结果
for item in result:
print(f"{item['name']}\t{item['phone']}\t{item['email']}")
# 按照电话号码进行排序
result = searcher.search(contacts, sort_by="phone")
# 输出结果
for item in result:
print(f"{item['name']}\t{item['phone']}\t{item['email']}")
该程序会分别输出按照姓名查询的结果和按照电话号码排序后的结果。
yield
关键字,将结果逐步返回,而不是一次性返回全部结果。本文介绍了如何用 Python 实现一个联系人查找器的功能,能够帮助用户查找相同的联系人,具有良好的扩展性和可定制性,能够适应不同的需求。