2017-06-05 81 views
0

假設我有一個for循環,逐個遍歷字符串中的字符。Python:for循環迭代在字符串變量中累加值

例:

string_x = "abc" 
for i in range (0, len(string_x)) 
    data = str(string_x[i]) 
    print(data) 

輸出給我一個,B,C逐個。

現在我想在將字符逐個字符地加擾後將它們分組到不同的字符串中。我已經想出瞭如何拼湊它,但是我不能只將它追加回循環內部的一個字符串,因爲它在每次迭代時都會覆蓋字符串值,並且只會以'b'之類的一個字符結尾。 我希望for循環創建一個名爲string_y的新字符串,它可以遞增地添加新字符,而不必在每次循環迭代中重寫整個字符串。 任何想法?

+0

+ =而不是=(並將數據初始化爲「」)。 – xzoert

+0

你的問題不是很清楚,你能給出例外的輸出嗎? – Arun

回答

0

我想嘗試尋找這

string_x = "abc" 
data = "" 
for i in range (0, len(string_x)): 
    data += str(string_x[i]) 
print(data) 

輸出

abc 

可以使用+=data = data + str(string_x[i])

+0

我知道這很簡單。謝謝。我已經太久了。 –

+0

好的,那麼你可以接受這個答案。 – Arun

0

使用+=(由xzoert在他的評論中所建議的)

string_x = 'abc' 
string_y = '' # init to empty string 
for c in string_x: 
    string_y += c # add a character to string_y 
print string_y 
0

爲了增加字母b到現有string_y假設,你必須把它串聯到現有string_y像

string_y = string_y + 'b' 

或在上面的循環,這將是

string_x = "abc" 
string_y = "" 
for i in range (0, len(string_x)) 
    data = str(string_x[i]) 
    print(data) 
    string_y = string_y + data 

由於字符串在Python中是不可變的數據類型,所以將兩個字符串連接在一起實際上會創建第三個字符串,它是前兩個字符串的組合。因此,將字母添加到列表並將其組合成字符串會更有效。

string_x = "abc" 
stringlist = [] 
for i in range (0, len(string_x)) 
    data = str(string_x[i]) 
    print(data) 
    stringlist.append(data) 
string_y = "".join(stringlist) 
0

不是很明確的問題,但我會試一試。

既然你沒有提到它,我只是假設你有一個像scrambled_list = ['c', 'a', 'b']這樣的混亂列表。

我想你想要的東西,如''.join(scrambled_list),這會給你'cab'

scrambled_list = ['c', 'a', 'b'] 
sep = '' 
output = sep.join(scrambled_list) 

print(output) 
'cab' 

字符串join()方法由seperater返回一個字符串串連,所以

'-'.join(scrambled_list)的意志帶給你'c-a-b'