una tuplas por metodos listas lista español elementos diccionarios comprensión anidadas agregar python list find position locate

tuplas - metodos de listas en python



Elemento de posición en lista ordenada en tiempo logarítmico Python (1)

Hay un módulo dedicado para búsqueda binaria: bisección

import bisect testlist=[0.0, 0.25, 0.5, 0.75, 1.0] print bisect.bisect(testlist, .27) - 1 ## 1

Tengo una lista ordenada y necesito ubicar un elemento dentro de esa lista de manera que el elemento anterior sea <= y el siguiente elemento en la lista sea> (la lista es una lista de números de coma flotante)

Tendré que devolver la posición del elemento que es <= es decir, el elemento anterior

¿Cómo puedo implementar esto en tiempo logarítmico? pensé en usar un método similar al binary seacrh pero no pude hacerlo funcionar

Cualquier ayuda sería apreciada

PS un ejemplo es: si la lista es

testlist=[0.0, 0.25, 0.5, 0.75, 1.0]

y ejecuto la función para 0.27, la función devolverá 1 (la ubicación de 0.25) y si la ejecuto para 0.5, devolverá 2