我正在使用NCDF文件,并且仅当它们包含特定位置时才需要绘制某些文件。我需要一些帮助,以创建一个if语句,该语句仅在两个列表的相应元素具有特定值时才起作用。基本上,我只想在数据接近某个区域时创建一个图。
为简单起见,
例如,假设我有两个包含两个不同文件的经度和纬度的列表
文件1:
lat1=[40,41,42,43,100]
lon1=[-70,-71,-72,-73,-100]
文件2:
lat2=[40,11,12,13]
lon2=[21,22,-71,24]
我想创建一个if语句,该语句仅在纬度列表和相应经度列表中都包含至少一个元素(不一定是全部)的情况下才起作用(例如,将字符串“ ***”添加到两个列表中)一定范围内。在这种情况下,我正在寻找-74至-70之间的经度和40至42之间的纬度。
这意味着file1满足if语句要求,因为它包含两个列表的相应元素中的值,而file2不包含。尽管file2确实包含lat2的40到42之间的元素以及lon2的-70到-74之间的元素,但是它们并不对应。
结果:
文件1:
lat1=[40,41,42,43,100,'***']
lon1=[-70,-71,-72,-73,-100,'***']
文件2:
lat2=[40,11,12,13]
lon2=[21,22,-71,24]
这是到目前为止我不正确的代码:
if any(40.5<x<42.3 for x in lats) and any(-74<y<-70 for y in lons):
lats.append('***')
lons.append('***')
此代码不管值是否对应都无法正常运行,这意味着file2也适用于该语句,因为即使它们不对应,它也包含值40和-71。
答案 0 :(得分:1)
您可以一起zip
您的列表:
if any(40.5 < x < 42.3 and -74 < y < -70 for x, y in zip(lats, lons)):