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

Python字符串按两位分割后,奇数长度时末尾补下划线的问题求助

字符串双字符分割并补全下划线的修正方案

原代码的问题在于,当字符串长度为奇数时,会将最后单个字符作为独立元素,再额外追加一个下划线元素,不符合["ab", "cd", "e_"]的预期输出。以下是两种修正方案:

方案一:遍历截取时补全下划线

直接在遍历过程中检查每个截取的片段长度,若为1则拼接下划线:

def split_string(string: str) -> list:
    result = []
    for i in range(0, len(string), 2):
        chunk = string[i:i+2]
        # 若当前片段仅单个字符(说明是奇数长度的最后一段)
        if len(chunk) == 1:
            chunk += "_"
        result.append(chunk)
    return result

# 测试
print(split_string("abcde"))  # 输出: ['ab', 'cd', 'e_']

方案二:先统一补全字符串再分割

先给奇数长度的字符串末尾添加下划线,确保总长度为偶数,再直接按步长2分割,代码更简洁:

def split_string(string: str) -> list:
    # 若字符串长度为奇数,末尾补下划线
    if len(string) % 2 != 0:
        string += "_"
    # 列表推导式按双字符分割
    return [string[i:i+2] for i in range(0, len(string), 2)]

# 测试
print(split_string("abcde"))  # 输出: ['ab', 'cd', 'e_']

两种方案都能满足需求,方案二更高效直观,避免了遍历中的额外判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 17:45:37