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

Python实现姓名列表拆分统计名字出现次数并返回字典的问题排查

错误原因

  • 第一层遍历姓名列表的循环中,new_name变量每次都会被新值覆盖,循环结束后仅保留了列表最后一个姓名的名Maren,此前所有姓名的名都没有被记录
  • 额外增加的第二层遍历逻辑完全多余,遍历字符串类型的new_name会逐个访问字符,同时计数逻辑里判断条件用的是first_name,赋值用的是new_name,逻辑完全错位

修正后完整代码

# 编写名为name_counts的函数,入参是完整姓名组成的列表
# 每个姓名都是空格分隔的两个词,示例:"David Joyner"
# 函数返回字典:键为列表里的所有名,值为对应名的出现次数
# 提示:使用split()方法拆分姓名得到名和姓

def name_counts(name_list):
    name_dict = {}
    for name in name_list:
        first_name = name.split()[0]
        if first_name in name_dict:
            name_dict[first_name] += 1
        else:
            name_dict[first_name] = 1
    return name_dict

# 下方是测试代码,可修改变量值测试不同输入场景
# 函数正常运行的原始输出如下(键的顺序可能不同):
# {'Shelba': 5, 'Maren': 1, 'Nicol': 1, 'David': 2, 'Brenton': 2}
name_list = ["David Joyner", "David Zuber", "Brenton Joyner",
             "Brenton Zuber", "Nicol Barthel", "Shelba Barthel",
             "Shelba Crowley", "Shelba Fernald", "Shelba Odle",
             "Shelba Fry", "Maren Fry"]
print(name_counts(name_list))

内容的提问来源于stack exchange,提问作者H20zzz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:15:01