2009-08-06 12 views
1

2つの不等な配列から、配列の最後の値に基づいて&の削除を比較する必要があります。配列の比較とソート

例: - テキストファイル内の列番号

m[0]n[0]、アレイ、[0]として保存されたテキストファイル&を形成読み出されます。

m[0] = [0.00, 1.15, 1.24, 1.35, 1.54, 2.32, 2.85, 3.10, 3.40, 3.80, 4.10, 4.21, 4.44] 

n[0] = [0.00, 1.12, 1.34, 1.45, 2.54, 3.12, 3.57] 

n[0]最後の値が3.57あり、それは3.403.80 of m[0] so I need to print till 3.40 inメートルの間にある[0] `

必要な出力:

p[0] = [0.00, 1.15, 1.24, 1.35, 1.54, 2.32, 2.85, 3.10, 3.40] 

答えて

1

両方のリストが順序付けられている場合は、あなたが行うことができます:

import bisect 
m[0][:bisect.bisect(m[0],n[0][-1])] 
0

私はこれをテストすることができていないが、ここに行く...

p = [] 
for item in m[0]: 
    if (item < n[0][-1]): 
     p.append(item) 
    else: 
     break 
+1

LEN(n)は、ここで完全に不要です。 – hop

+0

ありがとう、私はしばらくのうちにPythonを使用していません。 –

+1

@hop:ここにはあまり必要なものはありません。あなたがそれを弄ぶようになると、それはNed Batchelderのワンライナーになります。 – hughdbrown

6

いくつかの詳細が少し不明であるが、これはあなたが欲しいものを行う必要があります。

p[0] = [x for x in m[0] if x < n[0][-1]]