在Python中执行双循环时,分离第一个循环附加和第二个循环附加
现在我正在尝试用双循环制作二维数组 在我的代码中:在Python中执行双循环时,分离第一个循环附加和第二个循环附加,python,arrays,loops,Python,Arrays,Loops,现在我正在尝试用双循环制作二维数组 在我的代码中: for t in range(0,150): for z in range(0,279): QC1 = QC[t,z,:,:] SUMQ =1000*np.mean(QC1) QRAIN1.append(SUMQ) print len(QRAIN1) QRAIN.append(QRAIN1) QR = np.array(QRAIN) 我想创
for t in range(0,150):
for z in range(0,279):
QC1 = QC[t,z,:,:]
SUMQ =1000*np.mean(QC1)
QRAIN1.append(SUMQ)
print len(QRAIN1)
QRAIN.append(QRAIN1)
QR = np.array(QRAIN)
我想创建150X279数组,但结果不是这样,因为我认为在第一次循环运行的每一次中,结果都会附加到QRAIN1中
我想分离259个数字列表的每个循环运行,并将它们累加到QRAIN生成的150x279数组中
任何帮助或想法都将不胜感激
谢谢,
Isaac只要在循环中每次创建一个新的空列表:
for t in range(0,150):
QRAIN1 = []
for z in range(0,279):
QC1 = QC[t,z,:,:]
SUMQ =1000*np.mean(QC1)
QRAIN1.append(SUMQ)
print len(QRAIN1)
QRAIN.append(QRAIN1)
QR = np.array(QRAIN)
BTW,任何时候你发现自己从一个空列表开始,然后在<<代码>中附加到Road,考虑一个“强>列表理解< /强>:
的时髦替代方案。for t in range(150):
QRAIN1 = [1000*np.mean(QC[t,z,:,:]) for z in range(279)]
print len(QRAIN1)
QRAIN.append(QRAIN1)
QR = np.array(QRAIN)
我还删除了范围内的调用中多余的0,
——同样只是风格问题,但我喜欢Tufte的原则,“没有浪费的像素”:-)
当然,您也可以使用嵌套的列表理解来构建所有的QRAIN
,但我知道这已经开始有点牵强了,而内部的listcomp的“中间方式”,外部的循环,可能会被认为更具可读性。无论如何,以防万一你想试试…:
QRAIN = [ [1000*np.mean(QC[t,z,:,:]) for z in range(279)]
for t in range(150) ]
QR = np.array(QRAIN)
这一个没有打印
s,但我怀疑您只是将它们用作调试辅助工具,因此它们的丢失应该不是什么大问题,我希望:-)。谢谢Alex!我没有抓住那一点。我会尝试你的建议。