我试图从右边删除一定数量的零。例如:
"10101000000"
我想删除4个零...并获取:
"1010100"
我尝试string.rstrip("0")
或string.strip("0")
,但这会删除右边的所有零。我怎样才能做到这一点?
问题不重复,因为我无法使用导入。
答案 0 :(得分:6)
您可以使用正则表达式
>>> import re
>>> mystr = "10101000000"
>>> numzeros = 4
>>> mystr = re.sub("0{{{}}}$".format(numzeros), "", mystr)
>>> mystr
'1010100'
如果字符串没有以四个零结尾
,这将保留字符串你也可以检查然后切片
if mystr.endswith("0" * numzeros):
mystr = mystr[:-numzeros]
答案 1 :(得分:4)
对于已知数量的零,您可以使用切片:
s = "10101000000"
zeros = 4
if s.endswith("0" * zeros):
s = s[:-zeros]
答案 2 :(得分:1)
rstrip
删除最后传递的字符集中的所有字符。您可以删除这样的尾随零:
s = s[:-4] if s[-4:] == "0"*4 else s
答案 3 :(得分:1)
这是我的解决方案:
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)
答案 4 :(得分:0)
您尝试通过这种方式从字符串中拆分最后4个字符:
string[:-4]
答案 5 :(得分:0)
>>> s[:-4]+s[-4:].replace('0000','')
答案 6 :(得分:0)
不要忘记转换为str
import re
a = 10101000000
re.sub("0000$","", str(a))