我想将字符串放在某个索引处。我们假设我们从一个空字符串x=""
开始。然后我想把字母a,e,i,o和u放在索引0,2,4,6,8上,这样我得到x="a e i o u"
。然后,也许我想在索引1,3,5处添加z,y,x,以便得到x=azeyixo u
。我怎么能这样做?
答案 0 :(得分:3)
您可以创建一个字符串构建器。这是一个开始。
>>> class MutableString:
... def __init__(self, s):
... self._string = s
...
... def __setitem__(self, index, s):
... if index < len(self._string):
... self._string = self._string[:index] + s + self._string[index+len(s):]
... else:
... self._string = self._string + ' ' * (index -len(self._string)) + s
...
... def __str__(self):
... return self._string
...
>>> ms = MutableString("hello world!")
>>> print ms
hello world!
>>> ms[6] = "people"
>>> print ms
hello people
>>> ms = MutableString('')
>>> ms[0] = 'a'; ms[2] = 'e'; ms[4] = 'i'; ms[6] = 'o'; ms[8] = 'u'
>>> print ms
a e i o u
>>> ms[1] = 'z'; ms[3] = 'y'; ms[5] = 'x'
>>> print ms
azeyixo u
答案 1 :(得分:0)
String(describing:)
这应该可以完成你的工作,虽然它可以被优化,输入应该是一个dict,其中key是你想要插入元素的索引和值应该是实际值。
答案 2 :(得分:0)
def str_index(s, ilist, clist):
for i, c in zip(ilist,clist):
if i < len(s):
s = s[:i] + c + s[i+1:]
else:
s = s + " " * (i - len(s)) + c
return s
if __name__ == '__main__':
x = str_index("", [0,2,4,6,8], ['a','e','i','o','u'])
x = str_index(x, [1,3,5], ['x','y','z'])
print(x)