我从表单格式07123456789
获取字符串(它是一个电话号码),我想删除第一个数字/字符,只要它是零。然后在前面添加44
。因此输出将为447123456789
。
哪种方法最好?
答案 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.lstrip
或int
转换(参见其他答案)。
答案 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'