在python中,如何在列表元素中的两个字符之间拆分?

在python中,如何在列表元素中的两个字符之间拆分?,python,list,split,equation,Python,List,Split,Equation,我正在尝试创建一个字符串解析器,它可以将一个数学方程分成不同的部分(数字和运算符)。现在,我正在尝试创建一个列表来分隔不同的部分 例:[“123”、“+”、“123”] 但是,我正在尝试以一种不需要在输入中写入空格的方式来完成它。我想写“123+123”,而不是输入“123+123”。如何在加法符号和数字之间拆分字符串并将其附加到列表中 我知道,如果我在“123+123”之间添加一个空格,我将能够拆分它,但我的目标是能够在没有空格的情况下拆分它;只有一大块文字 到目前为止,我已经尝试将其从加法符

我正在尝试创建一个字符串解析器,它可以将一个数学方程分成不同的部分(数字和运算符)。现在,我正在尝试创建一个列表来分隔不同的部分

例:[“123”、“+”、“123”]

但是,我正在尝试以一种不需要在输入中写入空格的方式来完成它。我想写“123+123”,而不是输入“123+123”。如何在加法符号和数字之间拆分字符串并将其附加到列表中

我知道,如果我在“123+123”之间添加一个空格,我将能够拆分它,但我的目标是能够在没有空格的情况下拆分它;只有一大块文字

到目前为止,我已经尝试将其从加法符号中拆分,但这只是删除了它,剩下的是[“123”,“123”]

方程=输入(“方程:”) >>方程式:123+123 mylist=[] l、 附加(方程式) 对于mylist中的x: 打印(x.split(“+”)) >> ["123", "123"]
这将满足您的要求

import re

input_string = '123+123'

output_string = re.split('(\\+)', input_string)  # additionally can be written r'(\+)'

print(output_string)
输出是
['123'、'+'、'123']

re.split()行为在文档中有描述。基本上,这里使用括号可以创建一个捕获组,文本模式作为列表的一部分返回。

使用捕获组可以保留分隔符,并断言左侧的内容和右侧的内容是数字:

(?<=\d)([+])(?=\d)
结果

['123', '+', '123']

欢迎来到SO!你的表情有多复杂?允许减法、乘法和除法吗?小数?前导零?请列举你希望遇到的所有规则。如果表达式涉及嵌套,请使用,否则,
re.findall(r“\d+|\d”,s)
应该让您开始使用。
['123', '+', '123']