Actualmente tengo una larga lista que se ordena usando una función lambda f. Luego elijo un elemento aleatorio de los primeros cinco elementos. Algo así como:Forma rápida de obtener elementos N Mín. O Máx. De una lista en Python
f = lambda x: some_function_of(x, local_variable)
my_list.sort(key=f)
foo = choice(my_list[:4])
Esto es un cuello de botella en mi programa, de acuerdo con el generador de perfiles. ¿Cómo puedo acelerar las cosas? ¿Existe una manera rápida e incorporada de recuperar los elementos que quiero (en teoría no debería ser necesario ordenar toda la lista)? Gracias.
es 'some_function_of' expensive? – SilentGhost
http://stackoverflow.com/questions/2243542/how-to-efficientlyget-the-k-bigger-elements-of-a-list-in-python – fortran