同じ長さのリストが 2 つあります。
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]
私がやりたいことは、 Ratio の対応する要素が 未満であるという条件で、要素が Offset に由来するリストを作成することです2.5
。したがって、上記の 2 つのリストでは、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]