Operaciónes con lista

Jaime Perea jaime en iaa.es
Mie Mayo 10 14:09:32 CEST 2006


El Miércoles, 10 de Mayo de 2006 13:53, Arnau Sanchez escribió:
> Catalin, si se trata de hacer una solución con una línea, la tuya me
> parece perfecta... pero como dice Hernán, depende del tipo de lista, si
> está ordenada o no, etc. Con una lista muy grande tu solución será muy
> ineficiente. En tal caso, mejor (como apunta Hernán), primero asegúrate
> que esté ordenada, encuentra el punto clave y de allí un split hasta el
> final.
>
> arnau
>
> Hernan Martinez Foffani wrote:
> > Dependerá si la lista viene ordenada o no y del tamaño
> > que tenga.
> > Si está ordenada, podrías buscar el elemento inferior y
> > quedarte con la rebanada desde allí hasta el final.
> > Como buscar dependerá del tamaño de la lista.
> >
> > On 5/10/06, Catalin Lungu <lcatalin en siadv.com> wrote:
> >> Hola,
> >> Me gustaria hacer lo siguiente:
> >>
> >> l = [10, 50, 70, 90, 150, 200, 300]
> >> a = 65
> >>
> >> Queria devolver una lista con todos los elementos mayor que a y el
> >> siguiente menor elemento.
> >> Lo he hecho asi. Que os parece:
> >>
> >> [max([p for p in l if p < a])] + [p for p in l if p > a]
> >>
> >> Hay otra forma mejor?
> >>
> >> Gracias,
> >> Catalin
> >> _______________________________________________
> >> Python-es mailing list
> >> Python-es en aditel.org
> >> http://listas.aditel.org/listinfo/python-es

Si la lista es de números quizás tenga sentido usar el
modulo Numeric (o numarray o NumPy), hay muchas cosas
útiles allí.

a = 65
l = array([10, 50, 70, 90, 150, 200, 300])
mayores = compress(l>a,l).tolist()  # si quieres una lista de salida, 
                                    # si no mayores es otro array 
print mayores
[70, 90, 150, 200, 300]

-- 

           Jaime D. Perea Duarte. <jaime at iaa dot es>
             Linux registered user #10472

           Dep. Astrofisica Extragalactica.
           Instituto de Astrofisica de Andalucia (CSIC)
           Apdo. 3004, 18080 Granada, Spain. 




Más información sobre la lista de distribución Python-es