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

Python实现lastF函数:不使用split()完成姓氏前置的姓名格式转换

问题排查与无split()的实现方案

现有代码的逻辑偏差

  • 循环触发时机错误:代码进入for循环后第一次遍历就执行return,后续循环流程完全不会运行,根本达不到遍历解析字符串的目的
  • 索引取值错误:n[-1]获取的是整个字符串的最后一个单字符,不是完整的LastName;n[0][0]的嵌套索引在当前循环逻辑下没有实际意义

适配当前学习进度的实现思路

由于输入是固定的FirstName LastName格式,两个名字之间仅存在一个分隔空格,完全不需要用split()方法拆分字符串,只要定位到这个空格在字符串中的位置,就能分别取到前后两部分的内容:

  1. 逐字符遍历输入字符串,记录空格对应的索引位置
  2. 基于空格的索引位置,切出空格前的FirstName、空格后的LastName
  3. 按要求拼接成目标格式的字符串:取LastName全文、取FirstName的首字母,按"LastName, 名首字母."的格式组装

对应代码实现(基础循环版本,无需掌握split()/enumerate())

def lastF(n):
    space_pos = 0
    char_count = 0
    # 逐字符找分隔空格的位置
    for c in n:
        if c == ' ':
            space_pos = char_count
            break
        char_count += 1
    # 基于位置切分名字两部分
    first_name = n[:space_pos]
    last_name = n[space_pos + 1:]
    # 按要求返回拼接结果
    return f"{last_name}, {first_name[0]}."

调用测试效果

>>> lastF('John Locke')
'Locke, J.'

注意:这个实现默认输入完全符合题目给出的格式(仅含一个空格分隔的名和姓),不需要额外处理多空格、多段姓名的异常场景,刚好匹配当前题目的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 17:36:03