为了账号安全,请及时绑定邮箱和手机立即绑定

将字符串拆分为正数和负数python?

将字符串拆分为正数和负数python?

慕无忌1623718 2022-07-12 15:49:01
我希望能够拆分这样的东西:"20 - 5 - 4 + 10 + 4"要么作为带符号的数字进入一个列表:["20", "-5", "-4", "+10", "+4"]或进入两个无符号列表:["20", "10", "4"] ["5", "4"]有没有我可以在 python 中使用的内置方法?
查看完整描述

2 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

您可以使用re.findall:


import re

s = "20 - 5 - 4 + 10 + 4"

new_s = re.findall('[-+]?\d+', s.replace(' ', ''))

输出:


['20', '-5', '-4', '+10', '+4']


查看完整回答
反对 回复 2022-07-12
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

如果不存在空格或任何其他运算符,则没有regex但会中断。


expr = "20 - 5 - 4 + 10 + 4"

tokens = expr.split()

if tokens[0].isnumeric():tokens = ['+'] + tokens

tokens = [''.join(t) for t in zip(*[iter(tokens)]*2)]

pos = [t.strip('+') for t in tokens if '+' in t]

neg = [t.strip('-') for t in tokens if '-' in t]

或按照@Sayse建议:


tokens = expr.replace('- ','-').replace('+ ','+').split()

pos = [t.strip('+') for t in tokens if '-' not in t]

neg = [t.strip('-') for t in tokens if '-' in t]


查看完整回答
反对 回复 2022-07-12
  • 2 回答
  • 0 关注
  • 163 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号