脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - Python写一个字符串数字后缀部分的递增函数

Python写一个字符串数字后缀部分的递增函数

2022-11-17 11:48Moelimoe Python

这篇文章主要介绍了Python写一个字符串数字后缀部分的递增函数,写函数之前需要Python处理重名字符串,添加或递增数字字符串后缀,下面具体过程,需要的小伙伴可以参考一下

需求:

Python处理重名字符串,添加或递增数字字符串后缀

  • 对于2个重名的字符串,添加数字后缀,比如两个重复的字符串s1 = “name”, s2 = “name”,将s2的名称设置为name_1
  • 对应3个或多个重名的字符串,数字部分实现递增,初始时s1=s2=s3=“name”,重命名后得到s1=“name”,s2=“name_1”, s3=“name_2

要灵活处理字符串问题,使用re模块最为方便下面是一个对带有下划线+数字的后缀字符串递增的方法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def increase_string_suffix(s, incr_num=1):
    """
    带数字后缀"_d"的字符串自增方法,"name_1" 自增1 --> "name_2"
    Example
    -----------------
    >>> s = "name_01"
    >>> increase_string_suffix(s, incr_num=2)
    'name_03'
    """
    suffix_searched = re.search(r"(_)(\d+)$", s)
    if suffix_searched:
        suffix_plus_1 = re.sub(
            r"(_)(\d+)$",
            lambda x: f"{x.group(1)}{str(int(x.group(2)) + incr_num).zfill(len(x.group(2)))}",
            s
        )
    else:
        suffix_plus_1 = f"{s}_1"
    return suffix_plus_1

例子在代码中可以直接运行注释的doc部分,参数s是要传入的字符串,incr_num是一次要增加的步数
代码中核心部分是re.sub方法,r"(_)(\d+)$"是匹配搜寻部分,()对匹配的部分进行分组,x.group(1)是()匹配到的"",x.group(2)是匹配到的数字部分,zfill往左边填0补上长度,例如01→02而不会是01→2

也可以写一个递减的,或是修改前缀的,

例如:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def increase_string_prefix(s, incr_num=1):
    """
    带数字前缀"d-"的字符串自增方法,"1-name" 自增1 --> "2-name"
    Example
    -----------------
    >>> s = "1-name"
    >>> increase_string_prefix(s, incr_num=1)
    '2-name'
    """
    prefix_searched = re.search(r"^(\d+)(-)", s)
    if prefix_searched:
        prefix_plus_1 = re.sub(
            r"^(\d+)(-)",
            lambda x: f"{str(int(x.groups()[0]) + incr_num).zfill(len(x.groups()[0]))}{x.groups()[1]}",
            s
        )
    else:
        prefix_plus_1 = f"1-{s}"
    return prefix_plus_1

对于更多的正则表达式使用方法,可以参考之前的这篇文章

到此这篇关于Python写一个字符串数字后缀部分的递增函数的文章就介绍到这了,更多相关Python递增函数内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/Moelimoe/article/details/122747365

延伸 · 阅读

精彩推荐
  • PythonPython抓取百度查询结果的方法

    Python抓取百度查询结果的方法

    这篇文章主要介绍了Python抓取百度查询结果的方法,涉及Python正则匹配及字符串与URL操作的相关技巧,需要的朋友可以参考下...

    光索与诺5842020-07-20
  • Python在Python中f-string的几个技巧,你都知道吗

    在Python中f-string的几个技巧,你都知道吗

    f-string想必很多Python用户都基础性的使用过,但是百分之九十的人不知道?在Python中f-string的几个技巧,今天就带大家一起看看Python f-string技巧大全,需要的...

    Python探索牛4712022-02-12
  • PythonPython with标签使用方法解析

    Python with标签使用方法解析

    这篇文章主要介绍了Python with标签使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...

    一笑而过~一笑奈何5802020-04-17
  • PythonPycharm报错:'NoneType' object has no attribute 'bytes'的解决方法

    Pycharm报错:'NoneType' object has no attribute 'bytes'的解决方法

    这篇文章主要给大家介绍了关于Pycharm报错:'NoneType' object has no attribute 'bytes'的解决方法,文中通过图文将解决的方法介绍的非常详细,需要的朋友可以参考下...

    Nire_谒羽5642022-10-10
  • Python关于tensorflow的几种参数初始化方法小结

    关于tensorflow的几种参数初始化方法小结

    今天小编就为大家分享一篇关于tensorflow的几种参数初始化方法小结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 ...

    liushui948232020-05-10
  • Pythonpython使用Tkinter显示网络图片的方法

    python使用Tkinter显示网络图片的方法

    这篇文章主要介绍了python使用Tkinter显示网络图片的方法,涉及Python操作图片的相关技巧,需要的朋友可以参考下...

    feiwen10892020-06-12
  • Pythonpython中字典(Dictionary)用法实例详解

    python中字典(Dictionary)用法实例详解

    这篇文章主要介绍了python中字典(Dictionary)用法,以实例形式较为详细的分析了Python字典建立、添加、删除等常见操作技巧,需要的朋友可以参考下...

    adupt13032020-07-09
  • PythonPython使用 OpenCV 进行图像投影变换

    Python使用 OpenCV 进行图像投影变换

    这篇文章主要介绍了Python使用 OpenCV 进行图像投影变换,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下...

    woshicver6312022-08-24