【发布时间】:2018-06-27 02:45:24
【问题描述】:
所以我对 python 有了非常初步的了解(为期 10 周的暑期课程分为 python 和 Matlab)。我正在尝试像这样创建一个二维列表:
data.append (samples)
data.append (matches)
data_list.append (data)
data.clear()
这是在 for 循环中运行并在每次迭代时写入。但是,当我运行它并print(data_list) 时,我得到一个空列表。
我已经成功运行了它:
data.append (samples)
data.append (matches)
data_list.append (data)
data = []
但我不明白我的两种方法之间的区别以及为什么只有第二种方法有效......
【问题讨论】:
-
什么是
samples和matches? -
data_list.append(data.copy())将解决您的问题。问题是您在data_list中引用了data,而不是data中的内容。因此,当您清除data时,data_list内部的引用现在指向一个空列表。 -
samples和matches是整数值。它是一个将您的生日与随机样本组进行比较的程序。所以我了解data_list.append(data.copy())是如何解决这个问题的。奇怪的是,python 处理的方式不同,因为通过data=()清除数据会保留 data_list 中的值,但通过.clear清除它不会保留数据。