我有两个长度相等的列表:
Offset = [-0.0002, -0.0004, -0.0004, -0.006, -0.0006, -0.0006, -0.0066, -0.0007, -0.0007, -0.0008]
Ratio = [0.0641, 0.152, 0.254, 0.246, 0.3197, 0.3249, 2.8795, 0.4286, 0.5191, 0.5712]
我想做的是创建一个列表,其元素源自 Offset ,前提是 Ratio 中的相应元素小于2.5
. 所以对于上面的两个列表,Ratio 中的第 6 个元素大于2.5
,然后我想删除 Offset 中的第 6 个元素并返回所有其他元素。
我试图做一个列表理解,我的尝试是:
Data = [x for n in Ratio[n] for x in Offset if Ratio[n] < 2.5]
然而,这会产生错误'numpy.float64' object is not iterable',通过阅读 这个问题,我可以看到为什么会出现错误,但我不确定如何使列表理解起作用。
这个for循环似乎在正确的轨道上,但是a)我更喜欢列表理解和b)我认为您不能在迭代列表时删除列表中的元素。
for n in range(len(Ratio)):
if Ratio[n] < 2.5:
#Keep the element Offset[n]
else:
#Delete the element Offset[n]