Index out of range error in Python (IndexError: list index out of range)
Index out of range error in Python (IndexError: list index out of range)
我在这里似乎找不到我超出范围的问题:
layerZ = [layer_1,layer_2,layer_3,layer_4,layer_5,layer_6,layer_7,layer_8,layer_9,layer_10,layer_11,layer_12,layer_13]
for x in range(0, 12):
layerZ_total = [np.size(layerZ[x])]
layerZ_sp = [np.count_nonzero(layerZ[x]==0)]
layerZ_nonSp = [np.count_nonzero(layerZ[x])]
#Printing the results on scree to trace
print "Layer:",x+1,"Threshhold:",repr(ths),"Total Parameters: ",layerZ_totParam[x],"# Sp: ",layerZ_sp[x],"# Remained : ",layerZ_nonSp[x],"Sp %: ",float(layerZ_sp[x])/layerZ_total[x]
这应该有帮助:
layerZ = [layer_1,layer_2,layer_3,layer_4,layer_5,layer_6,layer_7,layer_8,layer_9,layer_10,layer_11,layer_12,layer_13]
layerZ_total = []
layerZ_sp = []
layerZ_nonSp = []
for x in range(0, 12):
layerZ_total.append(np.size(layerZ[x]))
layerZ_sp.append(np.count_nonzero(layerZ[x]==0))
layerZ_nonSp.append(np.count_nonzero(layerZ[x]))
#Printing the results on scree to trace
print "Layer:",x+1,"Threshhold:",repr(ths),"Total Parameters: ",layerZ_total[x],"# Sp: ",layerZ_sp[x],"# Remained : ",layerZ_nonSp[x],"Sp %: ",float(layerZ_sp[x])/layerZ_total[x]
在您的代码中,列表 layerZ_total
、layerZ_sp
和 layerZ_nonSp
每次在循环内都使用单个值重新初始化,因此在 index 0
处仅包含一个元素在它们内部,当您尝试访问某些 x index
时,会弹出 list index out of range
错误。
并且如果您要对 layerZ
列表中的每个 layer_*
进行处理(取决于您的要求),您需要 range(0, 13)
就像在执行此操作后一样 x
将采用 0
到 12
的值,从而处理 layerZ
列表中的每个 layer
我在这里似乎找不到我超出范围的问题:
layerZ = [layer_1,layer_2,layer_3,layer_4,layer_5,layer_6,layer_7,layer_8,layer_9,layer_10,layer_11,layer_12,layer_13]
for x in range(0, 12):
layerZ_total = [np.size(layerZ[x])]
layerZ_sp = [np.count_nonzero(layerZ[x]==0)]
layerZ_nonSp = [np.count_nonzero(layerZ[x])]
#Printing the results on scree to trace
print "Layer:",x+1,"Threshhold:",repr(ths),"Total Parameters: ",layerZ_totParam[x],"# Sp: ",layerZ_sp[x],"# Remained : ",layerZ_nonSp[x],"Sp %: ",float(layerZ_sp[x])/layerZ_total[x]
这应该有帮助:
layerZ = [layer_1,layer_2,layer_3,layer_4,layer_5,layer_6,layer_7,layer_8,layer_9,layer_10,layer_11,layer_12,layer_13]
layerZ_total = []
layerZ_sp = []
layerZ_nonSp = []
for x in range(0, 12):
layerZ_total.append(np.size(layerZ[x]))
layerZ_sp.append(np.count_nonzero(layerZ[x]==0))
layerZ_nonSp.append(np.count_nonzero(layerZ[x]))
#Printing the results on scree to trace
print "Layer:",x+1,"Threshhold:",repr(ths),"Total Parameters: ",layerZ_total[x],"# Sp: ",layerZ_sp[x],"# Remained : ",layerZ_nonSp[x],"Sp %: ",float(layerZ_sp[x])/layerZ_total[x]
在您的代码中,列表 layerZ_total
、layerZ_sp
和 layerZ_nonSp
每次在循环内都使用单个值重新初始化,因此在 index 0
处仅包含一个元素在它们内部,当您尝试访问某些 x index
时,会弹出 list index out of range
错误。
并且如果您要对 layerZ
列表中的每个 layer_*
进行处理(取决于您的要求),您需要 range(0, 13)
就像在执行此操作后一样 x
将采用 0
到 12
的值,从而处理 layerZ
列表中的每个 layer