如何实现针对多结构化元素列表的编号搜索函数?
解决方案:根据编号搜索人员信息的函数实现
现有代码的问题
- 人员列表定义语法错误:每个子项的元素未用逗号分隔,不符合Python语法规范
- 函数未遍历人员列表,无法逐个校验编号匹配情况
- 错误地对列表/元组类型的
people调用字符串方法split() - 全局变量
user依赖未声明的索引i,逻辑不成立
修正后的完整代码
# 正确定义人员列表:每个子项是(编号, 姓名, 州)的元组 people = ( (15209, "Amanda Craig", "NC"), (16428, "Johnathan Smith", "OH"), (12690, "Samantha Owens", "IL"), (17002, "Mark Stenson", "NY"), (13379, "Francis Trent", "NC"), (14904, "Jake Peterson", "CA") ) def search_user(number, people): # 遍历每个人员项 for person in people: # 取当前项的第一个元素(编号)进行匹配 if person[0] == number: # 拼接成指定格式的字符串返回 return f"{person[0]} {person[1]} {person[2]}" # 遍历完未找到匹配项,返回提示信息 return '"User not found"' # 测试用例 test_numbers = [14904, 17002, 19999] for num in test_numbers: user = search_user(num, people) print(user)
代码逻辑说明
- 人员列表修正:将每个人员信息拆分为独立的元素(编号为整数,姓名和州为字符串),保证结构清晰且符合Python语法
- 函数逻辑:
- 遍历传入的
people列表,逐个检查人员编号 - 匹配到目标编号时,按要求格式拼接信息并返回
- 若遍历结束未找到匹配项,返回指定的未找到提示
- 遍历传入的
- 测试验证:遍历测试编号列表,调用函数并打印结果,与期望输出完全一致
运行结果
14904 Jake Peterson CA 17002 Mark Stenson NY "User not found"
内容的提问来源于stack exchange,提问作者Learning one step at a time
相关产品推荐
相关产品推荐

