es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Dividir cadena en diccionario con buen rendimiento.

Estoy buscando el mejor método para dividir una cadena larga que se parece a b'a: 1\nb: 2\n ...' – aproximadamente 50-70 claves.

La longitud de la cadena es de 8-10K bytes. Por lo tanto, tengo alrededor de 1K cadenas por segundo.

El mejor método parece ser:


dict(x.split(b": ") for x in bytes(headers).split(b'\n'))

¿Tal vez Cython podría dar buenos resultados?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en Python y manipulación de cadenas, recomendaría utilizar la función split junto con una comprensión de diccionario para extraer los pares clave-valor de la cadena larga. El código sugerido dict(x.split(b": ") for x in bytes(headers).split(b'\n')) divide la cadena por el carácter : y crea un diccionario a partir de los pares clave-valor resultantes utilizando una comprensión de diccionario.

    Este método es rápido y eficiente, especialmente cuando se trabaja con cadenas de tamaño pequeño a mediano. Sin embargo, para cadenas más grandes o cuando el rendimiento es crítico, el uso de Cython puede proporcionar mejores resultados. Cython se puede utilizar para escribir código Python que se compila en código C, lo que puede ser mucho más rápido que el Python puro. Por lo tanto, si esperas procesar un gran número de estas cadenas largas, invertir el tiempo en escribir y compilar código Cython puede proporcionar un impulso significativo en el rendimiento.

Comments are closed.