例如,有一个字符串。的例子。

我怎样才能去掉中间的字符,即M ?我不需要密码。我想知道:

Python中的字符串是否以特殊字符结尾? 哪个是更好的方法-从中间字符开始将所有内容从右向左移动或创建一个新字符串而不复制中间字符?


当前回答

字符串在Python中是不可变的,所以这两个选项的意思基本上是一样的。

其他回答

card = random.choice(cards)
cardsLeft = cards.replace(card, '', 1)

如何从字符串中删除一个字符: 下面是一个例子,其中有一堆卡片表示为字符串中的字符。 其中一个被绘制(为random.choice()函数导入random模块,它在字符串中选择一个随机字符)。 创建一个新的字符串cardsLeft来保存字符串函数replace()给出的剩余卡片,其中最后一个参数表示只有一个“card”将被空字符串替换…

这可能是最好的方法:

original = "EXAMPLE"
removed = original.replace("M", "")

不要担心转换字符之类的问题。大多数Python代码发生在更高的抽象级别上。

在Python中,字符串是不可变的,所以你必须创建一个新的字符串。对于如何创建新字符串,您有几个选项。如果你想移除“M”出现的地方:

newstr = oldstr.replace("M", "")

如果你想删除中心字符:

midlen = len(oldstr) // 2
newstr = oldstr[:midlen] + oldstr[midlen+1:]

你问字符串是否以特殊字符结尾。不,你像一个C程序员一样思考。在Python中,字符串以其长度存储,因此任何字节值,包括\0,都可以出现在字符串中。

使用translate()方法:

>>> s = 'EXAMPLE'
>>> s.translate(None, 'M')
'EXAPLE'
def kill_char(string, n): # n = position of which character you want to remove
    begin = string[:n]    # from beginning to n (n not included)
    end = string[n+1:]    # n+1 through end of string
    return begin + end
print kill_char("EXAMPLE", 3)  # "M" removed

我在这里某处见过。