Python 如果第一个数字为 0,则从字符串中删除该数字
Python remove first number from string if it's 0
我从表单格式 07123456789
中获取一个字符串(它是一个 phone 数字),我想删除第一个 number/character 只有当它是零时。然后在前面添加 44
。所以输出将是 447123456789
.
哪种方法最好?
使用str.startswith
In [11]: s = '07123456789'
In [12]: '44{}'.format(s[1:] if s.startswith('0') else s)
Out[12]: '447123456789'
此外,您可以使用 +
运算符将字符串连接在一起,而不是 format
ting:
'44' + (s[1:] if s.startswith('0') else s)
如果您确定数字开头最多有 1 个零,则可以安全地使用 str.lstrip
或 int
转换(参见其他答案)。
解决此问题的一种方法是转换为 int
以删除开头的零,然后转换回 str
:
s = '07123456789'
s = '44'+str(int(s))
我们可以将字符串转换成整数,例如
>>> s = "07123456789"
>>> "44%s"%(int(s))
'447123456789'
我们可以使用字符串的 lstrip 方法,它将删除字符串左侧的所有“0”。例如
>>> "44%s"%(s.lstrip("0"))
'447123456789'
如果我们只想考虑字符串中的第一个字符,那么我们可以尝试以下操作:
(当字符串开头多一个“0”时,以上两种解决方案不会出现。)
>>> if s[0]=="0":
... s = s[1:]
...
>>> "44%s"%s
'447123456789'
或者使用 jamylak 的解决方案
>>> s = '07123456789'
>>> "44%s%s"%(s[0].strip("0"), s[1:])
'447123456789'
还有一个可能的选择:
>>> s = '07123456789'
>>> '44' + s[0].strip('0') + s[1:]
'447123456789'
str.lstrip
最适合这种情况:
>>> s = '07123456789'
>>> '44'+s.lstrip('0')
'447123456789'
>>> s = '7123456789'
>>> '44'+s.lstrip('0')
'447123456789'
我从表单格式 07123456789
中获取一个字符串(它是一个 phone 数字),我想删除第一个 number/character 只有当它是零时。然后在前面添加 44
。所以输出将是 447123456789
.
哪种方法最好?
使用str.startswith
In [11]: s = '07123456789'
In [12]: '44{}'.format(s[1:] if s.startswith('0') else s)
Out[12]: '447123456789'
此外,您可以使用 +
运算符将字符串连接在一起,而不是 format
ting:
'44' + (s[1:] if s.startswith('0') else s)
如果您确定数字开头最多有 1 个零,则可以安全地使用 str.lstrip
或 int
转换(参见其他答案)。
解决此问题的一种方法是转换为 int
以删除开头的零,然后转换回 str
:
s = '07123456789'
s = '44'+str(int(s))
我们可以将字符串转换成整数,例如
>>> s = "07123456789"
>>> "44%s"%(int(s))
'447123456789'
我们可以使用字符串的 lstrip 方法,它将删除字符串左侧的所有“0”。例如
>>> "44%s"%(s.lstrip("0"))
'447123456789'
如果我们只想考虑字符串中的第一个字符,那么我们可以尝试以下操作: (当字符串开头多一个“0”时,以上两种解决方案不会出现。)
>>> if s[0]=="0":
... s = s[1:]
...
>>> "44%s"%s
'447123456789'
或者使用 jamylak 的解决方案
>>> s = '07123456789'
>>> "44%s%s"%(s[0].strip("0"), s[1:])
'447123456789'
还有一个可能的选择:
>>> s = '07123456789'
>>> '44' + s[0].strip('0') + s[1:]
'447123456789'
str.lstrip
最适合这种情况:
>>> s = '07123456789'
>>> '44'+s.lstrip('0')
'447123456789'
>>> s = '7123456789'
>>> '44'+s.lstrip('0')
'447123456789'