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

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

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


当前回答

在Python 2中,可以使用UserString。MutableString以可变的方式来做:

>>> import UserString
>>> s = UserString.MutableString("EXAMPLE")
>>> type(s)
<class 'UserString.MutableString'>
>>> del s[3]    # Delete 'M'
>>> s = str(s)  # Turn it into an immutable value
>>> s
'EXAPLE'

MutableString在Python 3中被移除。

其他回答

Python 3.9+中引入了两个新的字符串删除方法

#str.removeprefix("prefix_to_be_removed")
#str.removesuffix("suffix_to_be_removed")

s='EXAMPLE'

在这个例子中,M的位置是3

s = s[:3] + s[3:].removeprefix('M')

OR

s = s[:4].removesuffix('M') + s[4:]

#output'EXAPLE'

下面是我切掉“M”的方法:

s = 'EXAMPLE'
s1 = s[:s.index('M')] + s[s.index('M')+1:]

另一种方法是用一个函数,

下面是通过调用函数从字符串中删除所有元音的方法

def disemvowel(s):
    return s.translate(None, "aeiouAEIOU")
from random import randint


def shuffle_word(word):
    newWord=""
    for i in range(0,len(word)):
        pos=randint(0,len(word)-1)
        newWord += word[pos]
        word = word[:pos]+word[pos+1:]
    return newWord

word = "Sarajevo"
print(shuffle_word(word))

使用translate()方法:

>>> s = 'EXAMPLE'
>>> s.translate(None, 'M')
'EXAPLE'