在Python 3中为多个位置中的字符串添加一个字符

问题描述:

Python初学者在这里,对不起,如果这是一个愚蠢的问题。在Python 3中为多个位置中的字符串添加一个字符

所以我有一个很长的字符串,我需要在字符串的特定区域添加一个字符。例如,a |在字符编号23,912和1200之后。我读了这个Add string in a certain position in Python,但它只适用于添加一个字符。

此外,该解决方案需要可扩展,而不是3次。我制作的代码可以有很多不同的位置,我想要角色的位置。

参照您发布的链接Add string in a certain position in Python; 如果您想重复不同值的操作,可以创建一个包含所有索引位置的列表,您希望插入|字符。 例如,

>>> l = [1, 3, 4] 
>>> s = "abcdef" 
>>> for i in l: 
>>>  s = s[:i] + "|" + s[i:] # as suggested in your link 
>>> s 
'a|b||cdef' 

这将让你重复该过程的一组在列表中提供的值。你也可以定义一个函数来帮助解决这个问题,如果这种方法不够,我可以解释一下。

但是请注意,这会插入相对于当前迭代的字符。也就是说,在本例中,在位置1处添加|后,下一个插入位置3与第一次插入之前的位置不同。你可以通过包含一个计数器变量来抵消所有索引位置(已经执行的插入数量)(需要初始列表进行排序)以避免这种情况(如果需要)。

+0

谢谢,它的工作原理!这可能是一个愚蠢的问题,但它是如何工作的?我对我做什么感到困惑。对不起,如果这是一个愚蠢的问题,请记住我是一个初学者。 –

+0

没问题,我没有比你多得多的经验! 我假设你对'I in l:'行感到困惑。这样做是从列表中取出每个元素(我们已经命名为'i')并对其执行操作。例如,如果你做了'list = [“cat”,“rabbit”,“dinosaur”]',然后 '列表中的动物: print(动物)' 这会打印猫,然后是兔子,然后恐龙。希望这是有道理的,这可以帮助你进一步https://www.tutorialspoint.com/python/python_for_loop.htm。 – Windmill

在巨蟒不太好,希望我能帮助 根据你去的时候,你可以做一个while循环来解决问题该网站

代码应该是这个样子

def insert_dash(string, index, addin): 
    return string[:index] + addin + string[index:] 
alldone = False 
string = input("String: ") 
index = " " 
while index: 
    index = input("Index: ") 
    addin = input("Add into: ") 
    string = insert_dash(string, index, addin) 

希望它有帮助!

PS:我没有试过代码,但我认为它会工作