Python:for循环迭代在字符串变量

时间:2017-06-05 05:55:37

标签: python loops for-loop

假设我有一个for循环,逐个遍历字符串中的字符。

例如:

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

输出一个接一个地给我a,b,c。

现在我想在逐个字符地加扰它之后将它组合回一个不同的字符串。我已经想出了如何加扰它,但是我不能将它追加到循环内的一个字符串中,因为它会在每次迭代时覆盖字符串值,并且最终只会出现一个字符,例如' b&#39 ;。 我希望for循环创建一个名为string_y的新字符串,该字符串可以递增地附加新字符,而不会在每次循环迭代时覆盖整个字符串。 有什么想法吗?

4 个答案:

答案 0 :(得分: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

答案 1 :(得分: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])

答案 2 :(得分: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)

答案 3 :(得分:0)

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

由于你没有提及它,我只是假设你有像scrambled_list = ['c', 'a', 'b']这样的乱序列表。

我猜您要求''.join(scrambled_list)之类的内容,它会为您提供'cab'

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

print(output)
'cab'

string的join()方法返回由seperater连接的字符串,所以

'-'.join(scrambled_list)将为您提供'c-a-b'