我正在尝试使用元素的z和标高在标高之间定位元素
当elemz中的一个元素位于列表级别EV的两个值之间时,我需要获得较低的值(较低的标高)。例如:元素z=1000>;标高(0)和<;elev(4000)。在这种情况下,我需要附加elev(0),而不是该元素的z100
如果我的海拔高度是:
[-4000, 0, 4000, 9600, 17600, 26600, 33600]
我的元素有以下z:
[-3000, -4000, 1, 18000, 1000, 7000, 27000 , 33600 , 40000, 3500, 5000]
最后,我需要以下列表:
-4000, -4000, 0, 17600,0 ,4000 ,26600 ,33600 ,33600 ,0 ,4000
我尝试了以下方法:
levElev = [-4000, 0, 4000, 9600, 17600, 26600, 33600]
elemZ = [-3000, -4000, 1, 18000, 1000, 7000, 27000 , 33600 , 40000, 3500, 5000]
for z in elemZ:
lowestElev = []
for i in range(0, len(levElev)):
for e in levElev:
if z >= e[i] and z<e[i+1]:
lowestElev.append(e)
OUT = lowestElev
以下是一个适用于所有值的版本:
结果:
这个
else
技巧是一件很值得了解的事情。Python有一件很酷的事情,并非所有语言都有。它说“如果你一直在迭代过程中,从不调用break
,那么就这样做。”通过将值添加到立面列表的末尾并编写以下代码来解决此问题:
相关问题 更多 >
编程相关推荐