为什么不更新字符串值?

时间:2016-06-09 08:27:58

标签: python

我正在编写一个for循环,它将获取一个字符串列表,并在字符串末尾添加一个新行,如果它还没有。

我的第一个想法是在下面,但没有用:

for string in list :
    if not string.endswith('\n'):
         string += '\n'

然后我在下面提出了这个诀窍:

for string in range(len(ist)):
    if not list[string].endswith('\n'):
        list[string] += '\n'

我很困惑为什么只有第二个工作 - 有人可以帮忙解释一下吗?

另外,有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

由于string是一个不可变对象,因此在此代码中:

n

在每次迭代中,for string in list : if not string.endswith('\n'): string += '\n' 变量在string中被赋予一个元素,然后在最后创建一个带有list的新字符串,但是这个新字符串永远不会被更新回清单。