Python如果为0,则从字符串中删除第一个数字

时间:2015-01-03 09:51:18

标签: python string

我从表单格式07123456789获取字符串(它是一个电话号码),我想删除第一个数字/字符,只要它是零。然后在前面添加44。因此输出将为447123456789

哪种方法最好?

5 个答案:

答案 0 :(得分:6)

使用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.lstripint转换(参见其他答案)。

答案 1 :(得分:4)

我们可以将字符串转换为整数,例如。

>>> s = "07123456789"
>>> "44%s"%(int(s))
'447123456789'

我们可以使用字符串的lstrip方法来删除所有" 0"从字符串的左边。 e.g。

>>> "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'

答案 2 :(得分:4)

另一种可能的选择:

>>> s = '07123456789'
>>> '44' + s[0].strip('0') + s[1:]
'447123456789'

答案 3 :(得分:1)

解决此问题的一种方法是转换为int以在开头删除零,然后转回str

s = '07123456789'
s = '44'+str(int(s))

答案 4 :(得分:1)

str.lstrip最适合这种情况:

>>> s = '07123456789'
>>> '44'+s.lstrip('0')
'447123456789'
>>> s = '7123456789'
>>> '44'+s.lstrip('0')
'447123456789'