从字符串右边删除一定数量的零
Delete a certain number of zeros from right of a string
我正在尝试从右边删除一定数量的零。例如:
"10101000000"
我想删除 4 个零...并得到:
"1010100"
我试着做 string.rstrip("0")
或 string.strip("0")
但这会从右边删除所有的零。我怎样才能做到这一点?
这个问题不是重复的,因为我不能使用导入。
对于已知数量的零,您可以使用切片:
s = "10101000000"
zeros = 4
if s.endswith("0" * zeros):
s = s[:-zeros]
您尝试通过这种方式从字符串中拆分出最后 4 个字符:
string[:-4]
rstrip
从末尾删除传递的字符集中的所有字符。您可以像这样删除尾随零:
s = s[:-4] if s[-4:] == "0"*4 else s
您可以使用正则表达式
>>> import re
>>> mystr = "10101000000"
>>> numzeros = 4
>>> mystr = re.sub("0{{{}}}$".format(numzeros), "", mystr)
>>> mystr
'1010100'
如果字符串不以四个零结尾,这将使字符串保持原样
你也可以检查然后切片
if mystr.endswith("0" * numzeros):
mystr = mystr[:-numzeros]
>>> s[:-4]+s[-4:].replace('0000','')
这是我的解决方案:
number = "10101000000"
def my_rstrip(number, char, count=4):
for x in range(count):
if number.endswith(char):
number = number[0:-1]
else:
break
return number
print my_rstrip(number, '0', 4)
不要忘记转换为 str
import re
a = 10101000000
re.sub("0000$","", str(a))
我正在尝试从右边删除一定数量的零。例如:
"10101000000"
我想删除 4 个零...并得到:
"1010100"
我试着做 string.rstrip("0")
或 string.strip("0")
但这会从右边删除所有的零。我怎样才能做到这一点?
这个问题不是重复的,因为我不能使用导入。
对于已知数量的零,您可以使用切片:
s = "10101000000"
zeros = 4
if s.endswith("0" * zeros):
s = s[:-zeros]
您尝试通过这种方式从字符串中拆分出最后 4 个字符:
string[:-4]
rstrip
从末尾删除传递的字符集中的所有字符。您可以像这样删除尾随零:
s = s[:-4] if s[-4:] == "0"*4 else s
您可以使用正则表达式
>>> import re
>>> mystr = "10101000000"
>>> numzeros = 4
>>> mystr = re.sub("0{{{}}}$".format(numzeros), "", mystr)
>>> mystr
'1010100'
如果字符串不以四个零结尾,这将使字符串保持原样
你也可以检查然后切片
if mystr.endswith("0" * numzeros):
mystr = mystr[:-numzeros]
>>> s[:-4]+s[-4:].replace('0000','')
这是我的解决方案:
number = "10101000000"
def my_rstrip(number, char, count=4):
for x in range(count):
if number.endswith(char):
number = number[0:-1]
else:
break
return number
print my_rstrip(number, '0', 4)
不要忘记转换为 str
import re
a = 10101000000
re.sub("0000$","", str(a))