python中,如何修改一个字符串string类型的指定索引位置的某个字符,比如想把"01234567"的第二个字符换成"a",该怎么办?哪种方式最高效?
喷火的尾巴
介绍两种方法相对更推荐第二种方法,因为第二种方法效率更高。
方法一,把字符串转为列表对象(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