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

如何修改Python姓名统计代码以仅统计名字?

如何修改代码统计列表中名字(First Name)的出现次数?

你碰到的属性错误很好解决——问题出在调用split()的对象错了!name_list是列表类型,而split()是字符串专属方法,不能直接用在列表上。你需要对列表里的每一个全名(也就是每个字符串元素)单独拆分,提取出名字部分。

另外还要提醒你一个小疏漏:原来的函数没有return语句,所以调用print(name_counts(name_list))时最后会输出None,这肯定不是你想要的结果,得把这个也补上。

下面是修正后的完整代码:

def name_counts(name_list):
    name_dict = {}
    for full_name in name_list:
        # 拆分全名,取第一个部分作为名字(默认按空格分隔)
        first_name = full_name.split()[0]
        # 更新计数逻辑
        if first_name in name_dict:
            name_dict[first_name] += 1
        else:
            name_dict[first_name] = 1
    # 必须返回统计好的字典
    return name_dict

# 举个测试例子
test_names = ["John Doe", "Jane Smith", "John Connor", "Alice Brown", "Jane Doe"]
print(name_counts(test_names))
# 输出:{'John': 2, 'Jane': 2, 'Alice': 1}

关键细节说明:

  • 每次循环处理一个全名(比如"John Doe"),调用split()会把它拆成["John", "Doe"],取索引0的元素就是名字
  • 如果遇到带中间名的全名(比如"Mary Ann Taylor"),split()[0]依然能正确提取第一个名字,符合统计需求
  • 如果你的名字格式有特殊情况(比如带连字符的名字"Jean-Luc Picard"),full_name.split()[0]也能拿到"Jean-Luc",这个可以根据你的实际需求微调拆分逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:28:39