【问题标题】:Python: for loop iteration accumulate values in string variablePython:for循环迭代在字符串变量中累积值
【发布时间】:2017-11-05 20:21:56
【问题描述】:

假设我有一个 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 的新字符串,该字符串可以递增地附加新字符,而不会在每次循环迭代时覆盖整个字符串。 有什么想法吗?

【问题讨论】:

  • += 而不是 =(并将数据初始化为“”)。
  • 你的问题不是很清楚,你能给出例外的输出吗?

标签: python loops for-loop


【解决方案1】:

尝试使用+=(正如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

【讨论】:

    【解决方案2】:

    我想你正在寻找这个

    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])

    【讨论】:

    • 我知道这很简单。谢谢。我已经起床太久了。
    【解决方案3】:

    假设要将字母 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)
    

    【讨论】:

      【解决方案4】:

      不是很清楚的问题,但我会试一试。

      既然你没有提到它,我就假设你得到了一个像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() 方法返回一个由分隔符连接的字符串,所以

      '-'.join(scrambled_list) 会给你'c-a-b'

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-04
        • 2010-12-12
        相关资源
        最近更新 更多