簡體   English   中英

Python如果為0,則從字符串中刪除第一個數字

[英]Python remove first number from string if it's 0

我從表格格式07123456789 (這是一個電話號碼)得到一個字符串,我想刪除第一個數字/字符只有它是零。 然后在前面增加44 所以輸出將是447123456789

這是最好的方法嗎?

使用str.startswith

In [11]: s = '07123456789'

In [12]: '44{}'.format(s[1:] if s.startswith('0') else s)
Out[12]: '447123456789'

另外,您可以使用+運算符將字符串連接在一起,而不是format

'44' + (s[1:] if s.startswith('0') else s)

如果你確定在數字的開頭最多有1個零,你可以安全地使用str.lstripint轉換(參見其他答案)。

我們可以將字符串轉換為整數

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

解決這個問題的一種方法是轉換為int以在開頭刪除零,然后轉換回str

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM