将特定字符串放在某个索引处

时间:2017-04-28 05:05:02

标签: python string

我想将字符串放在某个索引处。我们假设我们从一个空字符串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。我怎么能这样做?

3 个答案:

答案 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)