Python error: Valueerror-need-more-than-1-value-to-unpack

Python error: Valueerror-need-more-than-1-value-to-unpack

在python时我运行这段代码:

lat, lon = f.variables['latitude'], f.variables['longitude']
latvals = lat[:]; lonvals = lon[:] 
def getclosest_ij(lats,lons,latpt,lonpt):
dist_sq = (lats-latpt)**2 + (lons-lonpt)**2  
minindex_flattened = dist_sq.argmin()    
return np.unravel_index(minindex_flattened, lats.shape)
iy_min, ix_min = getclosest_ij(latvals, lonvals, 46.1514, 20.0846)

出现以下错误:

ValueError Traceback (most recent call last)

ipython-input-104-3ba92bea5d48 in module()

11     return np.unravel_index(minindex_flattened, lats.shape)
12     iy_min, ix_min = getclosest_ij(latvals, lonvals, 46.1514, 20.0846)

ValueError:解压需要超过 1 个值

这是什么意思?我该如何解决? 我会读取一个 NetCDF 文件,它由总列水数据组成,维度为:时间 (124)、纬度 (15) 和经度 (15)。我会为特定点(lat,lon)和时间分配 tcw 的数量。我尝试使用上面的代码来解决我的任务的第一部分,即评估特定坐标的 tcw,但没有成功。

在此先感谢您的帮助。

在python中你可以写

var1, var2 = (1, 2) # = iterable with 2 items

这将在 var1 中存储 1,在 var2 中存储 2。 此功能称为解包。

所以你的代码抛出的错误意味着,函数 getclosest_ij 返回 one 值而不是你需要将它们解压缩到 iy_min 中的 2 个值] 和 ix_min