2017-05-24 14 views
0

2つのリストが交差する場所を見つけようとしています。長いリストを使用してその交差のインデックス位置を返します。不等長の2つのリストの交差のインデックスを取得します。

現在、私は範囲(0、len(a))でforループを設定してカウンタ変数を作成し、丸め(a、3)が等しいか、 bより大きい場合は、カウンタをインクリメントしてプレースホルダリストを追加します。

私はset.intersectを使用してみましたが、運がないと評価しました。私はよりクリーンな方法があることを知っている。もし誰かがnumpyを使って解決策を推薦できればそれは助けになるでしょう。例えば

a = [0,0.14431, 0.1695151036, 0.2421644337, 0.2663808771, 0.4601124241, 0.4843288674, 0.5206535325, 0.6659521927, 0.7022768578, 0.7507097445, 0.8354672963, 0.9202248481, 0.9565495132, 1.0170906216] 


b = [0, 0.25, 0.50, 0.75, 1.0] 

私はそれを返すしたいと思います:

output = [0,4,7,10,14] 

答えて

0

はまだ、その間にこの思い付いた多くのラインを切るが、それ以来の迅速もしわかりません毎回ループ全体を繰り返します(リストは実際には実際のファイルの10000項目と同じです)。

placeholder = [] 
    for value in b: 
     match_min_value = min(a, key=lambda x:abs(x-value)) 
     placeholder.append(a.index(match_min_value)) 
関連する問題