You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python将变量maxi的所有值存入列表?代码问题排查

解决列表仅存储最后一个maxi值的问题

嘿,我一下子就找到你代码里的问题啦!

你看,你把列表初始化的代码c = []放在了for循环的内部——这就意味着每一次循环开始的时候,程序都会重新创建一个空的列表c,之前循环里添加的maxi值直接就被覆盖掉了,最后自然只能看到最后一次循环的那个maxi值。

修正后的代码

只需要把列表c的初始化移到for循环外面就行,这样整个循环过程中列表只会被创建一次,每次计算出的maxi都能顺利追加进去:

import numpy as np
import re
import gdal
import ogr
from osgeo import gdal_array
from gdalconst import *
import os
import osr
import shutil
import h5py
import subprocess
import operator

indir = '/home/vigna/Documents/LST_29_03'
directory=os.fsencode(indir)
e=1
# 把列表初始化移到循环外面!
c = []
for file in os.listdir(directory):
    file1=os.fsdecode(file)
    if '_Gadchiroli' in file1:
        b=str(e)+'_Gadchiroli.tif'
        gadchiroli=gdal.Open(b,GA_ReadOnly)
        gad_arry=gadchiroli.ReadAsArray()
        maxi=np.amax(gad_arry)
        c.append(maxi)
        e+=1
print(c)

另外补充一句:你一开始用的c.append(maxi)是完全正确的选择,extend是用来把另一个可迭代对象(比如列表、元组)里的元素逐个添加进来的,这里maxi是单个数值,用append就够了,问题根本不在这两个方法上哦~

内容的提问来源于stack exchange,提问作者vigna purohit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:17:13