如何根据前面的操作符(+或-)将字符串中的数字分成两个列表?


string = "6+324-909+5+55-1"
listPositive = []
listNegative = []

我想用"+"在列表正数前面加上"-"在他们面前的列表否定的。只是没有运算符的数字,但是用运算符来区分。我已经设法找到了一种方法来分离前面既没有加号也没有减号的第一个数字。

我是一个新手,我很乐意听到不同的方法去做,甚至是一个完全不同的思路的建议。

我试着:

s1='678-6783742+2342+4-8'
lst=s1.split()
sample=[]
for i in lst:
if '-' in i:
sample.append(i[1:])
print(sample)

And was expected:

['6783742', '8']

但是只有当我像这样输入空格时,它才会这样工作:

s1='678 -6783742 +2342 +4 -8'

在您的问题中,您已经有了答案:将-替换为-,将+替换为+(注意操作符前的空格),然后分割:

s = "678-6783742+2342+4-8"
s = s.replace("+", " +").replace("-", " -")
negative = []
for i in s.split():
if i.startswith("-"):
negative.append(i[1:])
print(negative)

打印:

['6783742', '8']

最新更新