我正在编写一个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'
我很困惑为什么只有第二个工作 - 有人可以帮忙解释一下吗?
另外,有更好的方法吗?
答案 0 :(得分:2)
由于string是一个不可变对象,因此在此代码中:
n
在每次迭代中,for string in list :
if not string.endswith('\n'):
string += '\n'
变量在string
中被赋予一个元素,然后在最后创建一个带有list
的新字符串,但是这个新字符串永远不会被更新回清单。