2024-04-25 03:30:30 发布
网友
在Python中可以使用正则表达式执行类似的操作吗?在
Increment every character that is a number in a string by 1
所以输入“123ab5”将变成“234ab6”
我知道我可以在字符串上迭代,如果每个字符是一个数字,我可以手动递增每个字符,但这看起来不太和谐。在
注意。这不是家庭作业。我把我的问题简化到一个听起来像家庭作业练习的程度。在
>>> test = '123ab5' >>> def f(x): try: return str(int(x)+1) except ValueError: return x >>> ''.join(map(f,test)) '234ab6'
a = "123ab5" b = ''.join(map(lambda x: str(int(x) + 1) if x.isdigit() else x, a))
或:
在任何情况下:
编辑-前两个映射^{cd1>}到^{cd2>},最后一个映射将其包装到^{{cd3>}。要将前两个包为零,必须用^{cd5>}替换^{cd4>}
>>> a = "123ab5" >>> def foo(n): ... try: n = int(n)+1 ... except ValueError: pass ... return str(n) ... >>> a = ''.join(map(foo, a)) >>> a '234ab6'
顺便说一下,对于我来说,简单的if或者try-catch-eumiro-with-join+map解决方案也是更具python风格的解决方案
或:
^{pr2}$或:
^{pr3}$在任何情况下:
^{pr4}$编辑-前两个映射^{cd1>}到^{cd2>},最后一个映射将其包装到^{{cd3>}。要将前两个包为零,必须用^{cd5>}替换^{cd4>}
顺便说一下,对于我来说,简单的if或者try-catch-eumiro-with-join+map解决方案也是更具python风格的解决方案
相关问题 更多 >
编程相关推荐