Python如何获取字符串最后一次出现分隔符前的内容及报错处理
问题原因
- 核心触发原因是方法名拼写错误+可能调用顺序写反:你实际运行的代码中要么是把字符串拼接方法
join误写为了joint(多输入了末尾的t字符),要么是把调用顺序写反,把分隔符.join(待拼接列表)的正确结构写成了待拼接列表.joint(分隔符),才触发了AttributeError。 str.join()方法本身的入参要求就是可迭代的字符串序列,你通过a.split("_")[:-1]得到的列表完全符合该方法的入参要求,不是问题诱因。
解决方法
方案1:修正拼写/调用顺序即可运行原逻辑
你原来的提取逻辑是正确的,仅需要把方法名改回join、确认调用顺序正确就可以正常运行:
a = "1_2_3" b = "1_2_3_4" res_a = "_".join(a.split("_")[:-1]) res_b = "_".join(b.split("_")[:-1]) print(res_a) # 输出 1_2 print(res_b) # 输出 1_2_3
方案2:更高效的实现方式
可以使用rsplit指定从右往左仅分割1次,不需要对整个字符串全部分割,性能更好,代码更简洁:
res_a = a.rsplit("_", 1)[0] res_b = b.rsplit("_", 1)[0]
内容的提问来源于stack exchange,提问作者Grumpy Civet
相关产品推荐
相关产品推荐

