2009-08-06 9 views
1

À partir de deux tableaux inégaux, je dois comparer & delete en fonction de la dernière valeur d'un tableau.Comparaison et tri du tableau

Exemple:

m[0] et n[0] sont lus former un fichier texte & enregistré en tant que tableau, [0] - leur numéro de colonne dans un fichier texte.

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] dernière valeur est 3.57, il se trouve entre 3.40 et 3.80 of m[0] so I need to print till 3.40 in m [0] `

sortie requis:

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

Répondre

1

si les deux listes sont commandés, vous pouvez le faire:

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

Je n'ai pas pu tester cela, mais vous voilà ...

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

len (n) est ici tout à fait inutile. – hop

+0

Bien, merci - Je n'ai pas utilisé Python depuis un moment. –

+1

@hop: Il y a tellement de choses inutiles ici. Quand vous commencez à le taquiner, il devient le one-liner de Ned Batchelder. – hughdbrown

6

Quelques détails sont un peu clair, mais cela devrait faire ce que vous voulez:

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