我在使用Python编辑列表中遇到问题时,我得到了以下代码:
mylist = ["one", "day", "soon"]
for x in mylist:
x = "New word"
print(x)
print(mylist)
我希望输出为" New Word"三次(每次迭代一次),然后是[" New Word"," New Word"," New Word"]的列表,而不是我&#39已经得到了:
新词
新词
新词
['一个',' day','很快']
问题:为什么列表显然会发生变化,但在作为整个列表打印时又会恢复为原始形式?
注意:我已使用以下代码修复了该问题,但我仍然对原始方法失败的原因感到好奇
mylist2 = ["a", "b", "c"]
for x in mylist2 :
mylist2[mylist2.index(x)] = "Woo"
print(mylist2)
答案 0 :(得分:2)
问题在于,当您使用for x in mylist
进行迭代,然后为x
分配值时,您将创建一个名为x
的新变量,这就是您要打印的内容。您不能以这种方式更改列表,只能通过这样迭代:
for i in range(len(mylist)):
mylist[i] = "New word"