如何删除字符串中数字前的所有零(如果它等于 0,则保留最后一个 0)
How to remove all zeros before the number in a string (and keep the last 0 if it's equals to 0)
输入:“00012”/“00453403”/“0000000”/“123223”
输出:“12”/“453403”/“0”/“123223”
我可以用 3 行或更多代码来完成,但现在我觉得很愚蠢,因为我认为必须有一种方法可以在一行中完成(为了安全起见,我们假设 2 行)。
有人可以帮助增加世界上漂亮代码的数量吗? :)
def remove_unnecessary_zero_in_the_beginning(nbr_as_str):
while len(nbr_as_str) > 1 and nbr_as_str[0] == "0":
nbr_as_str = nbr_as_str[1:]
return nbr_as_str
print(remove_unnecessary_zero_in_the_beginning("00012"))
import re
re.sub("^0+", "", n) or 0
您可以对匹配组使用正则表达式。这个匹配所有前导零然后捕获之后的所有数字。 \d*?
非贪婪匹配后跟 \d
确保至少最后一位数字始终存在,即使它是 0.
import re
def remove_unnecessary_zero_in_the_beginning(nbr_as_str):
return re.match(r"0*(\d*?\d)$", t).group(1)
test = ["00012", "00453403", "0000000", "123223"]
for t in test:
print(remove_unnecessary_zero_in_the_beginning(t))
str(int(mystring))
(字符太少)
你可以用这个
i = ["00012","00453403","0000000","123223"]
o = ["{0:d}".format(int(e)) for e in l]
输出:
o
Out[8]: ['12', '453403', '0', '123223']
假设您有一个输入列表,即:l1 = [ "00012" , "00453403" , "0000000" , "123223"]
代码可以是:
l1 = [ "00012" , "00453403" , "0000000" , "123223"]
test = list(map(lambda x : x.strip('0') if int(x)!=0 else int(x),l1))
print(test)
输入:“00012”/“00453403”/“0000000”/“123223”
输出:“12”/“453403”/“0”/“123223”
我可以用 3 行或更多代码来完成,但现在我觉得很愚蠢,因为我认为必须有一种方法可以在一行中完成(为了安全起见,我们假设 2 行)。
有人可以帮助增加世界上漂亮代码的数量吗? :)
def remove_unnecessary_zero_in_the_beginning(nbr_as_str):
while len(nbr_as_str) > 1 and nbr_as_str[0] == "0":
nbr_as_str = nbr_as_str[1:]
return nbr_as_str
print(remove_unnecessary_zero_in_the_beginning("00012"))
import re
re.sub("^0+", "", n) or 0
您可以对匹配组使用正则表达式。这个匹配所有前导零然后捕获之后的所有数字。 \d*?
非贪婪匹配后跟 \d
确保至少最后一位数字始终存在,即使它是 0.
import re
def remove_unnecessary_zero_in_the_beginning(nbr_as_str):
return re.match(r"0*(\d*?\d)$", t).group(1)
test = ["00012", "00453403", "0000000", "123223"]
for t in test:
print(remove_unnecessary_zero_in_the_beginning(t))
str(int(mystring))
(字符太少)
你可以用这个
i = ["00012","00453403","0000000","123223"]
o = ["{0:d}".format(int(e)) for e in l]
输出:
o
Out[8]: ['12', '453403', '0', '123223']
假设您有一个输入列表,即:l1 = [ "00012" , "00453403" , "0000000" , "123223"]
代码可以是:
l1 = [ "00012" , "00453403" , "0000000" , "123223"]
test = list(map(lambda x : x.strip('0') if int(x)!=0 else int(x),l1))
print(test)