import re
from functools import reduce
from itertools import accumulate
def get_next_data(data) -> str:
if not data:
return ''
if re.search(r'(?i)[a-z]', data):
return data
mylist = re.split(r'\.', data) # 使用 . 号分隔
mylen = [len(i) for i in mylist] # 每个值有几位数
mydata = str(int(reduce(lambda x, y: x + y, mylist)) + 1) # 总位数 + 1
result = ''
start_index = 0
if len(mydata) != sum(mylen):
mylen[0] += 1
for i in accumulate(mylen):
result += mydata[start_index:i] + '.'
start_index = i
return result.rstrip('.')
if __name__ == '__main__':
print(get_next_data('2.3.6')) # 2.3.7
print(get_next_data('1.2.12.1777.9')) # 1.2.12.1778.0
print(get_next_data('9.99.999.9999')) # 10.00.000.0000
python中类似版本号格式的数据 +1
最新推荐文章于 2022-12-28 15:30:00 发布