我目前正在开发一个 api,他们以这种格式向我发送 str 范围:“1-5,10-25,27-30”,我需要添加或删除数字以保存格式。
如果他们给我发送“1-5,10-25,27-30”而我删除“15”,结果必须是“1-5,10-14,16-25,27-30”,如果他们发送给我“ 1-5,10-25,27-30" 并且我添加了 "26" 结果必须是 "1-5,10-30"
我一直在尝试将整个范围转换为数字列表,删除目标并再次转换它,但这样做很慢,因为他们发送 8 位数字,所以它不是最好的方法
我怎样才能做到这一点?是一个使用这种格式的库吗?
谢谢!
intspan处理整数范围和对它们的操作
>>> from intspan import intspan
>>> s = "1-5,10-25,27-30"
>>> span = intspan(s)
>>> str(span)
'1-5,10-25,27-30'
>>> span.add(26)
>>> str(span)
'1-5,10-30'
>>> span.discard(15)
>>> str(span)
'1-5,10-14,16-30'
Run Code Online (Sandbox Code Playgroud)