如何在Python中替换另一个字符串中的一组字符?
下面是我正在尝试做的事情:假设我有一个字符串'abcdefghijkl‘,并想用A替换结束符号(k)中的2-d。我收到一个错误:
>>> aa = 'abcdefghijkl'
>>> print aa[-2]
k
>>> aa[-2]='A'
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
aa[-2]='A'
TypeError: 'str' object does not support item assignment那么,问题是:有没有一种优雅的方法来替换(替换)从指定位置开始的另一个字符串中的字符串符号?类似于:
# subst(whole_string,symbols_to_substiture_with,starting_position)
>>> print aa
abcdefghijkl
>>> aa = subst(aa,'A',-2)
>>> print aa
abcdefghijAlsubst的非暴力代码是什么?
发布于 2010-08-24 02:07:57
如果你要替换的总是同一个位置,你可以这样做:
>>> s = s[0:-2] + "A" + s[-1:]
>>> print s
abcdefghijAl在一般情况下,您可以这样做:
>>> rindex = -2 #Second to the last letter
>>> s = s[0:rindex] + "A" + s[rindex+1:]
>>> print s
abcdefghijAl编辑:很的一般情况下,如果你只想在替换中重复一个字母:
>>> s = "abcdefghijkl"
>>> repl_str = "A"
>>> rindex = -4 #Start at 4th character from the end
>>> repl = 3 #Replace 3 characters
>>> s = s[0:rindex] + (repl_str * repl) + s[rindex+repl:]
>>> print s
abcdefghAAAl发布于 2010-08-24 02:07:06
TypeError: 'str' object does not support item assignment这是意料之中的-- python字符串是不可变的。
一种方法是做一些切片和切丁。如下所示:
>>> aa = 'abcdefghijkl'
>>> changed = aa[0:-2] + 'A' + aa[-1]
>>> print changed
abcdefghijAl连接的结果,changed将是另一个不可变的字符串。请注意,这不是适用于所有替换场景的通用解决方案。
发布于 2010-08-24 02:08:59
你必须将它分割并实例化一个新的字符串,因为字符串是不可变的:
aa = aa[:-2] + 'A' + aa[-1:]https://stackoverflow.com/questions/3550327
复制相似问题