如何为字符数为奇数的字符串末尾添加下划线以实现双字符分割?
Python字符串按2字符分组:奇数长度末尾补下划线
要实现这个需求,只需要在分割前先处理原字符串:判断其长度是否为奇数,若是则在末尾追加一个下划线_,之后再按每2个字符分割即可。
修改后的代码如下:
def split_string(string: str) -> list: n = 2 # 处理奇数长度的情况:末尾补下划线 if len(string) % 2 != 0 and string: # 空字符串不处理 string += "_" list1 = [string[i: i + n] for i in range(0, len(string), n)] return list1 # 测试示例 print(split_string("123456")) # ["12", "34", "56"] print(split_string("ab cd ef")) # ["ab", " c", "d ", "ef"] print(split_string("abc")) # ["ab", "c_"] print(split_string(" ")) # [" _"] print(split_string("")) # []
关键说明
- 条件判断
len(string) % 2 != 0 and string:既确保字符串长度为奇数,又排除空字符串的情况(空字符串不需要补下划线)。 - 补下划线后再执行原有的列表推导式分割逻辑,保证所有分组都是2个字符长度。
测试结果完全符合需求:
- 长度为偶数的字符串(如"123456"、"ab cd ef")分割结果不变;
- 奇数长度的非空字符串(如"abc"、" ")会先补下划线再分割,得到每组2字符的结果;
- 空字符串返回空列表,符合预期。
内容的提问来源于stack exchange,提问作者Andrey Petrus
相关产品推荐
相关产品推荐

