Python:for循环迭代在字符串变量中累加值

问题描述:

假设我有一个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

我想尝试寻找这

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

使用+=(由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 

为了增加字母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) 

不是很明确的问题,但我会试一试。

既然你没有提到它,我只是假设你有一个像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'