【发布时间】:2020-07-21 17:20:17
【问题描述】:
我有一个包含(纬度、经度、时间)的 netcdf 文件 (data1),我想提取特定的(纬度、经度)点。为此,我使用字典。
lats=[20,40]
lons=[-135,-75]
names=['jib', 'jibb']
d={}
for i in lats:
for j in lons:
for k in names:
d[k]=data1.sel(latitude=i).sel(longitude=j)
这只是一个数据没有意义的例子。但是,当我打印出jib 和jibb 时,它们的纬度和经度完全相同。为什么是这样?我想要的是jib 有 lat=20 和 lon=-135,而jibb 有 lat=40 和 lon=-75。
d['jib']
time: 44160
Coordinates:
longitude
()
float32
-75.0
latitude
()
float32
40.0
d['jibb']
time: 44160
Coordinates:
longitude
()
float32
-75.0
latitude
()
float32
40.0
【问题讨论】:
-
使用
zip()会很有帮助,不需要嵌套循环 -
你正在迭代你的两个 lats、两个 lons 和两个名字的所有八个排列。只有与每个名称一起存储的最后一个值保留在字典中,因为它们覆盖了以相同名称存储的三个先前的排列。
-
如何防止这种情况发生?
-
另外,我不熟悉 zip()。随意提出一个包含它的解决方案。
-
很好,这可以按要求工作!
标签: python dictionary for-loop python-xarray