在Python中,在字母数字字符串的末尾添加一个
我试图有效地将一个添加到字符串的末尾,如下所示:在Python中,在字母数字字符串的末尾添加一个,python,python-3.x,string,Python,Python 3.x,String,我试图有效地将一个添加到字符串的末尾,如下所示: tt0000001-->tt0000002但我不知道如何实现这一点 一种复杂的方法是在开始时去掉2个t,计算非零位数(我们称之为z),将字符串设为int,加1,然后创建一个包含2个t,6-z 0,然后是int的字符串,但是因为我需要使用很多字符串(例如:tt0000001,然后tt0000002然后tt0000003等等)很多时候,如果有一种更有效的方法来实现这一点,那就太好了 有人知道怎么做吗?如果可能的话,一艘班轮就很理想了 谢谢!您所描述的
tt0000001
-->tt0000002
但我不知道如何实现这一点
一种复杂的方法是在开始时去掉2个t,计算非零位数(我们称之为z),将字符串设为int,加1,然后创建一个包含2个t,6-z 0,然后是int的字符串,但是因为我需要使用很多字符串(例如:tt0000001
,然后tt0000002
然后tt0000003
等等)很多时候,如果有一种更有效的方法来实现这一点,那就太好了
有人知道怎么做吗?如果可能的话,一艘班轮就很理想了
谢谢!您所描述的基本上是正确的。不过,这并不像您建议的那样困难,因为支持从整数创建0填充字符串 只要你知道这个数字是7位数,你就可以这样做
>>> x = 'tt0000001'
>>> x = f'tt{int(x.lstrip("t"))+1:07}'
>>> x
'tt0000002'
不过,更简单的方法是只保留一个整数变量,并且每次递增整数时只根据需要(重新)构造标签
>>> x = 1
>>> x += 1
>>> f'tt{x:07}'
'tt0000002'
>>> x += 1
>>> f'tt{x:07}'
'tt0000003'
不是干的或者其他什么的,但更好的方法是重新设计,乍一看:
import re
text = tt0000001
text = '{0}{1:07d}'.format(re.sub(r'(\d.*)','',text),int(re.search(r'(\d.*)',text).group(0))+1)
不使用
f'{}'
给予你不能在其中使用反冲。其他人也有同样的问题-看看这是否回答了你的问题?s=“tt”+str(int(s[2:])+1.rjust(7,'0')
其中s=“tt0000001”
很好的解决方案,我在我的问题中使用了正则表达式,但你的更好!)