对于f中的行:为什么在列表中替换时有区别?

jan*_*ane 0 python loops replace line

难道这两个人说的完全一样吗?为什么当我运行第一个时,我最终只得到列表中的最后一项,但是第二个得到了["a","b","c"]?

content = ["a\n","b\n","c\n"]

for line in content:
    content = line.replace("\n","")

content = [line.replace("\n","") for line in content]
Run Code Online (Sandbox Code Playgroud)

Bur*_*lid 5

for循环中,您将content使用字符串替换名称.实际上,名称将指向列表内容\n替换为的最后一项.''content

在第二个列表理解中,您将创建一个列表,其中列表中的每个项目都content替换了最后一个字符'',并将新列表分配给名称content.