Python如何按多个分隔符拆分字符串且避免TypeError:'str'对象无法解释为整数错误
多参数拆分字符串问题解决方案
你遇到的TypeError: 'str' object cannot be interpreted as integer报错,核心原因是re.split的参数传递不符合规则:re.split的标准入参逻辑为:
- 第1位:匹配分隔规则的正则表达式
- 第2位:待拆分的目标字符串
- 第3位(可选):最大拆分次数,要求为整数类型
你写的re.split(' de', ' di', translated_sentence) 错误将第2位填为字符串' di',导致第3位的translated_sentence被识别为「最大拆分次数」入参,字符串无法转换为整数就会抛出对应报错。
正确实现方案
要同时按de、di作为拆分标记,且保留标记在拆分后的结果中,可以用正则的正向肯定预查实现,示例代码如下:
import re # 你的翻译后字符串 translated_sentence = 'de mno aili di felio' # 正则含义:匹配后面紧跟de或di的空格作为拆分点,不会消耗de/di字符 new_sentence = re.split(r' (?=d[ei])', translated_sentence) print(new_sentence)
运行后输出结果完全符合你的预期:
['de mno aili', 'di felio']
如果后续需要新增其他d开头的定冠词作为拆分标记,只需要修改正则中d[ei]的括号内容即可,比如要加da就改成d[eia]。
内容的提问来源于stack exchange,提问作者qwerteee
相关产品推荐
相关产品推荐

