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

2024-09-30 01:32:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在某个索引处放置字符串。假设我们从一个空字符串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。我该怎么做?你知道吗


Tags: 字符串字母azeyixo
3条回答
def join_str(tmp_dict, x):
    lst_x = list(x)
    lst_keys = list(tmp_dict.keys())
    lst_keys = [int(key) for key in lst_keys]
    max_key = max(lst_keys)
    for i in range(len(lst_x), max_key + 1):
        lst_x.append(' ')
    for key in tmp_dict:
        lst_x[key] = tmp_dict[key]
    return ''.join(lst_x)

这应该做你的工作,虽然它可以优化和输入应该是一个dict,其中键是你想要插入元素的索引,值应该是实际值。你知道吗

你可以做一个字符串生成器。开始吧。你知道吗

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

相关问题 更多 >

    热门问题