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

Python如何从姓名列表提取首名中间名首字母及完整姓氏并拼接字符串

问题原因
  • 变量覆盖问题:first、mid、last三个变量定义在for循环内部,每次遍历都会覆盖上一次的结果,循环结束后只保留了最后一个姓名「George P Burdell」的处理结果,所以输出只有最后一条。
  • 姓名拆分逻辑冗余:先把输入的姓名列表用逗号拼接再按空格拆分,再手动切分成3个子列表的写法属于硬编码适配3个输入的场景,扩展性极差,只要输入姓名数量变化就会报错。
  • 结果收集逻辑缺失:没有把每个姓名的处理结果存到统一列表里,最后也没有把所有结果拼接成完整字符串。
  • 格式错误:原来的拼接逻辑里空格写在了点号前面,输出会出现G .P.这类不符合预期的格式。
修正后代码
def fancy_me(name_list):
    processed_names = []
    # 直接遍历输入的每一个完整姓名
    for full_name in name_list:
        # 拆分单个姓名的首名、中间名、姓氏
        first, mid, last = full_name.split()
        # 按要求格式化姓名后存入列表
        formatted_name = f"{first[0]}. {mid[0]}. {last}"
        processed_names.append(formatted_name)
    # 把所有处理后的姓名用逗号加空格拼接为单个字符串返回
    return ", ".join(processed_names)

print(fancy_me(["First Middle Last", "David Andrew Joyner", "George P Burdell"]))
运行结果

运行后输出和预期完全一致:
F. M. Last, D. A. Joyner, G. P. Burdell

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 17:57:01