我有一个循环,该循环会为多个数据集生成一个表示为陷阱的数字。我正在尝试将所有陷阱编号放入一个列表中,以便能够找到它们的平均值。当我尝试将它们放入循环中时,只有循环的最后一个数字进入列表。
*通过这段代码,它实际上获取了用于应力的数据和用于应变的数据。随着数据集在循环中的变化,应力和应变也随之变化。然后,它使用梯形法则找到曲线下的面积。接下来,应将曲线下的区域放入列表中,以便我可以找到平均值,但列表中仅包含最后一个值。
for dataset in samplenums:
data = np.array(get_data("0h UV Exposure, Roll Direction",dataset))
moredata = np.transpose(data)
Stress = moredata[:,1]
Strain = moredata[:,0]
trap = integ.trapz(Stress,Strain)
print("The toughness calculated using trapazoidal rule for dataset", dataset, "is",trap)
list = []
list.append(trap)
print(list)
答案 0 :(得分:2)
按如下所示重写代码,几乎没有错误。
1-无需每次都创建新列表,因此可以在循环外部进行声明。
list = []
for dataset in samplenums:
data = np.array(get_data("0h UV Exposure, Roll Direction",dataset))
moredata = np.transpose(data)
Stress = moredata[:,1]
Strain = moredata[:,0]
trap = integ.trapz(Stress,Strain)
list.append(trap)
print("The toughness calculated using trapazoidal rule for dataset", dataset, "is",trap)
print(list)
答案 1 :(得分:0)
您每次(在循环内)都创建一个新的list
,并将数据(trap
)附加到其中。您需要做的是在进入循环之前创建list
,然后将数据附加到循环内。