2017-04-17 86 views
1

Python初學者在這裏,對不起,如果這是一個愚蠢的問題。在Python 3中爲多個位置中的字符串添加一個字符

所以我有一個很長的字符串,我需要在字符串的特定區域添加一個字符。例如,a |在字符編號23,912和1200之後。我讀了這個Add string in a certain position in Python,但它只適用於添加一個字符。

此外,該解決方案需要可擴展,而不是3次。我製作的代碼可以有很多不同的位置,我想要角色的位置。

回答

1

參照您發佈的鏈接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

1

在巨蟒不太好,希望我能幫助 根據你去的時候,你可以做一個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:我沒有試過代碼,但我認爲它會工作

相關問題