Python的字符串中如何替换指定索引位置的字符?

python中,如何修改一个字符串string类型的指定索引位置的某个字符,比如想把"01234567"的第二个字符换成"a",该怎么办?哪种方式最高效?

喜欢这个问题 | 分享 | 新建回答

回答

喷火的尾巴

Jul 14, 2019
0 赞

介绍两种方法相对更推荐第二种方法,因为第二种方法效率更高

方法一,把字符串转为列表对象(list类型),修改指定位置的字符后,再通过join方法把列表对象转换回字符串

>>> a = "01234567"
>>> a = list(a)
>>> a
['0', '1', '2', '3', '4', '5', '6', '7']
>>> a[1] = 'a'
>>> a
['0', 'a', '2', '3', '4', '5', '6', '7']
>>> a = ''.join(a)
>>> a
'0a234567'

运行一下



方法二:通过截取字符串相加的方式如下所示(该方式效率更高):

新的字符串 = 老字符串[:要替换的索引位置] + 替换成的目标字符 + 老字符串[要替换的索引位置+1:]

>>> a = "01234567"
>>> a = a[:1] + 'a' + a[2:]
>>> print a
0a234567

运行一下