gpt4 book ai didi

Python - 从字符串中手动删除特定字母

转载 作者:太空宇宙 更新时间:2023-11-03 14:10:46 24 4
gpt4 key购买 nike

我知道 string.replace("x", "y") 方法,但我试图从字符串中手动删除一个字符以帮助我更好地理解 Python 和编程一般。我目前拥有的方法在下面详细说明,但我不明白为什么对于“Dee”并删除“e”它将返回“De”,但是对于“John Do”并删除“o”它将返回“Jhn D” .因此,它删除了两个字母,但只删除了第一个字母。

任何帮助将不胜感激。

def remove_letter():  # Remove a selected letter from a string
base_string = str(raw_input("Enter some text: "))
letter = str(raw_input("Enter the letter to remove: ")) # takes any string size
letter = letter[0] # ensures just one character is used
length = len(base_string)
location = 0

while location < length:
if base_string[location] == letter:
base_string = base_string[:location] + base_string[location+1::]
# concatenate string using slices
length -= 1
location += 1

print("Result %s" % base_string)

最佳答案

您遇到的问题是您更改了要从中删除字母的字符串的大小,同时删除了字母:
当您删除 Dee 中的第一个“e”时,您的位置 = 1,对应于第一个“e”,但现在是第二个“e”的位置。去掉 e 后,在当前循环结束时,location = 2,length = 2,因此停止循环。

如何解决问题:只有在找不到字母时才增加位置:

else:
location += 1

这将防止您的循环在删除字母后不立即检查字母。

如果您需要更多解释,请直接询问。

关于Python - 从字符串中手动删除特定字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38331921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com