如何使用Python替换字符串中的第一个字符?

72qzrwbm  于 2023-07-01  发布在  Python
关注(0)|答案(5)|浏览(287)

如何使用python单独替换字符串中的第一个字符?

string = "11234"
translation_table = str.maketrans({'1': 'I'})
output= (string.translate(translation_table))
print(output)

预期输出:

I1234

实际输出:

11234
sz81bmfz

sz81bmfz1#

我不知道你想实现什么,但似乎你只是想用'I'替换'1'一次,所以试试这个:

string = "11234"
string.replace('1', 'I', 1)

str.replace有3个参数oldnewcount(可选)。count表示要将old子字符串替换为new子字符串的次数。

mefy6pfw

mefy6pfw2#

在Python中,字符串是不可变的,这意味着你不能赋值给索引或修改特定索引处的字符。使用str.replace()代替。下面是函数头

str.replace(old, new[, count])

这个内置函数返回一个字符串的副本,其中所有出现的子字符串 old 都被 new 替换。如果给出了可选参数 count,则仅替换第一次出现的计数。
如果不想使用str.replace(),可以利用拼接的优势手动完成

def manual_replace(s, char, index):
    return s[:index] + char + s[index +1:]

string = '11234'
print(manual_replace(string, 'I', 0))

输出量
I1234

ycl3bljg

ycl3bljg3#

你可以使用re(regex),并在那里使用sub函数,第一个参数是你想要替换的东西,第二个是你想要替换的东西,第三个是字符串,第四个是计数,所以我说1,因为你只需要第一个:

>>> import re
>>> string = "11234"
>>> re.sub('1', 'I', string, 1)
'I1234'
>>>

实际上就是:

re.sub('1', 'I', string, 1)
ohtdti5x

ohtdti5x4#

如果我正确地解释了OP的“第一个字符”,那么如果匹配,它应该替换字符串的第一个且仅替换第一个字符:

string = "11234"
translation_table = str.maketrans({'1': 'I'})
output = string[0].translate(translation_table) + string[1:]
print(output)
vdgimpew

vdgimpew5#

通过阅读你的问题,我明白你想在某个索引上替换你的sting的某个字符,在你的例子中,用'I'替换索引[0]上的字符,
我的回答:
我们知道字符串是不可变的,所以我们不能直接修改和替换字符,但是他们是一种绕过这个的方法,步骤:
1.将字符串转换为列表
1.更改指定索引上的字符
1.变回一个圈套
代码:

string = "11234"
string_asList = list(string)       #converts sting into list

string_asList[0] = "I"             #replace element at [O] index
string = ''.join(string_asList)    #converts list back to string

print(string)

相关问题