交换时,每次迭代后python list.clear()函数空列表

我正在尝试在列表中添加数据。我使用了一个临时列表,将其数据交换到另一个列表b,然后在每次迭代中清除其数据 使用temp.clear()时,最终输出为空。但是使用temp = []时,输出正确。

请告诉我们为什么使用temp.clear()和temp = []时会有不同的输出。

a=['apple','pizza','veg','chicken','cheese','salad','chips','veg']
b=[]
temp=[]

for i in range(len(a)):
    temp.append(a[i])
    b.append(temp)
    temp.clear()
    #temp = []
print(b)        

输出

#temp.clear()
[[],[],[]]

#temp = []
[['apple'],['pizza'],['veg'],['chicken'],['cheese'],['salad'],['chips'],['veg']]
ykq110119 回答:交换时,每次迭代后python list.clear()函数空列表

temp.clear()从列表中删除所有项目(请参阅文档)。 temp = []不会清除任何列表。而是创建一个新的空列表。由于您将temp附加到b,因此在使用temp = []时这些值会保留,但在使用temp.clear()时这些值将被清除。

本文链接:https://www.f2er.com/3169605.html

大家都在问