如何从字符串中删除确切数目的中间字符?

时间:2018-10-18 14:26:30

标签: string python-3.x

我正在尝试根据给定的数字删除字符串中的中间字符数。例如,如果字符串为mahir,并告知我删除一个中间字符,即h,输出为mair,如果给定数字为2,则输出应该是mar

我已经研究出如何去除中间字符,但是在正确去除中间字符时遇到了麻烦。这是我的代码:

remover = int(input())
s = "mahir"
counter = len(s) - remover
while True:
   h = len(s)//2
   mod = (len(s) + 1) % 2
   s = s[:h - mod] + s[h + 1:]
   if len(s) == counter:
       break
print(s)

如果我多次输入remover,最终会出现inifinte循环。如何解决此问题并删除正确数量的中间字符?

1 个答案:

答案 0 :(得分:2)

您可以像这样对字符串进行切片:

s = 'mahir'
n = int(input())
i = (len(s) - n + 1) // 2
print(s[:i] + s[i + n:])