You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现针对多结构化元素列表的编号搜索函数?

解决方案:根据编号搜索人员信息的函数实现

现有代码的问题

  • 人员列表定义语法错误:每个子项的元素未用逗号分隔,不符合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)

代码逻辑说明

  1. 人员列表修正:将每个人员信息拆分为独立的元素(编号为整数,姓名和州为字符串),保证结构清晰且符合Python语法
  2. 函数逻辑:
    • 遍历传入的people列表,逐个检查人员编号
    • 匹配到目标编号时,按要求格式拼接信息并返回
    • 若遍历结束未找到匹配项,返回指定的未找到提示
  3. 测试验证:遍历测试编号列表,调用函数并打印结果,与期望输出完全一致

运行结果

14904 Jake Peterson CA
17002 Mark Stenson NY
"User not found"

内容的提问来源于stack exchange,提问作者Learning one step at a time

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 09:20:30