在Python中执行双循环时,分离第一个循环append和第二个循环append

2024-06-16 08:25:39 发布

您现在位置:Python中文网/ 问答频道 /正文

现在我正试着用双环做二维数组。你知道吗

在我的代码中:

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数组中。你知道吗

任何帮助或想法都将不胜感激。你知道吗

谢谢你

以撒


Tags: 代码infornprange数组meanprint
1条回答
网友
1楼 · 发布于 2024-06-16 08:25:39

每次循环时只需创建一个新的空列表:

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)

顺便说一句,当你发现自己从一个空列表开始,然后在for循环中附加到它时,请考虑一下列表理解的时髦替代方法:

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)

我还删除了range调用中多余的0,,这只是风格的问题,但我喜欢Tufte的原则,“没有浪费的像素”:-)

当然,你也可以用嵌套的列表理解来构建所有的QRAIN,但我知道这已经开始有点牵强了,内部的listcomp的“中间方法”,外部的for循环,可能会被认为更具可读性。不管怎样,万一你想试试…:

QRAIN = [ [1000*np.mean(QC[t,z,:,:]) for z in range(279)]
          for t in range(150) ]
QR = np.array(QRAIN)

这个没有print,但我怀疑您只是将它们用作调试辅助工具,所以它们的丢失应该不是什么大问题希望:-). 你知道吗

相关问题 更多 >