当我使用list.append()时,我有一个问题。 在下面的代码中,append()会附加n次相同的东西,为什么会发生这种情况?
ret=['aaa']
def generateMessage(num):
ret[0]=num
return (ret)
outputfile=[]
for cnt in range(0,5):
# print(cnt)
tmp=generateMessage(cnt)
print("TMP is: ")
print(tmp)
outputfile.append(tmp)
print("OutputFile is: ")
print(outputfile)
print(outputfile)
此问题不会发生在此:
ret=[]
def generateMessage(num):
ret=num
return (ret)
outputfile=[]
for cnt in range(0,5):
# print(cnt)
tmp=generateMessage(cnt)
print("TMP is: ")
print(tmp)
outputfile.append(tmp)
print("OutputFile is: ")
print(outputfile)
print(outputfile)
任何人都可以向我解释一下吗? 非常感谢!
答案 0 :(得分:0)
以下内容ret
将其第一项分配给num
并返回ret
:
ret=['aaa']
def generateMessage(num):
ret[0]=num
return (ret)
所有返回的列表都是相同的列表。您需要每次都返回一个新列表
def generateMessage(num):
return [num]