Articles of estructuras de datos de

Estructura accesible por nombre de atributo u opciones de índice

Soy muy nuevo en Python, y estoy tratando de averiguar cómo crear un objeto que tenga valores accesibles por nombre de atributo o por índice. Por ejemplo, la forma en que os.stat () devuelve un stat_result o pwd.getpwnam () devuelve un struct_passwd. Al tratar de averiguarlo, solo he encontrado implementaciones en C de los tipos […]

Eliminar un elemento de una cola de prioridad

En Python, el módulo heapq proporciona una cola de prioridad. Tiene métodos para insertar y hacer estallar artículos. ¿Cómo elimina un elemento que ha insertado que no es la prioridad más baja de la cola? (Recetas alternativas para hacer esto usando otras colecciones alternativas también son bienvenidas)

¿Hay una estructura de datos estándar de Python que mantenga la cosa en orden?

Tengo un conjunto de rangos que podrían ser algo como esto: [(0, 100), (150, 220), (500, 1000)] Luego agregaría un rango, digamos (250, 400) y la lista se vería así: [(0, 100), (150, 220), (250, 400), (500, 1000)] Luego intentaría agregar el rango (399, 450) , y se produciría un error porque se superpuso (250, […]

Intersección de dos listas de cuerdas

Tuve una pregunta de entrevista en este sentido: Dadas dos listas de clientes desordenados, devuelva una lista de la intersección de las dos listas. Es decir, devolver una lista de los clientes que aparecen en ambas listas. Algunas cosas que establecí: Supongamos que cada cliente tiene un nombre único Si el nombre es el mismo […]

Estructura de datos de Python para agregar, eliminar y random.choice eficientes

Estoy buscando una estructura de datos Python add que pueda add un nuevo elemento, remove un elemento existente y elegir un elemento aleatorio, todo en un tiempo mejor que O (n). Esperaba que el set pudiera hacer esto, pero AFAIK, la única forma de elegir un elemento aleatorio de un conjunto de Python es random.choice(list(my_set)) […]

Estructura de datos ideal con búsqueda rápida, actualización rápida y fácil comparación / clasificación

Estoy buscando una buena estructura de datos para contener una lista de tuplas con valores (hash, timestamp) . Básicamente, quiero usarlo de la siguiente manera: Los datos entran, compruebe si ya está presente en la estructura de datos (igualdad de hash, no marca de tiempo). Si es así, actualice la marca de tiempo a “ahora” […]

Python: ¿calcula funciones de densidad de probabilidad multinomiales en un gran conjunto de datos?

Originalmente pretendía usar MATLAB para abordar este problema, pero la función incorporada tiene limitaciones que no se adaptan a mi objective. La misma limitación ocurre en NumPy. Tengo dos archivos delimitados por tabuladores. El primero es un archivo que muestra los residuos de aminoácidos, la frecuencia y el recuento de una base de datos interna […]

Python: Encontrar una clave (cadena) en un diccionario que contiene una subcadena

En mi script, construyo un diccionario de claves (álbumes) asignadas a artistas (valores) para poder hacer una búsqueda rápida de lo que los artistas hicieron en qué álbumes. Sin embargo, quiero que el usuario pueda encontrar todos los álbumes que contienen una subcadena. Por ejemplo, una búsqueda en “Light” debería regresar [Light Chasers] = Cloud […]

El equivalente de TreeSet de Java en Python?

Recientemente encontré un código Java que simplemente puso algunas cadenas en un Java TreeSet, implementé un comparador basado en la distancia para él, y luego hice su camino alegre hacia la puesta del sol para calcular una puntuación determinada para resolver el problema dado. Mis preguntas, ¿Hay una estructura de datos equivalente disponible para Python? […]

¿Existe una estructura de datos similar a un diccionario que permita búsquedas de ‘clave’ y de ‘valor’?

Necesito una estructura para mi pequeño progtwig Python para guardar una lista de máximo 500 nombres con un número cada uno. Los nombres serían únicos, pero los números se repetirían (a menudo). Primero pensé en un diccionario , pero también necesito poder buscar los números, por ejemplo, tendría que cambiar los 2 a 3 . […]