Python - Generación de un contador Hexadecimal rápido

 
Vista:
sin imagen de perfil

Generación de un contador Hexadecimal rápido

Publicado por Xavier (4 intervenciones) el 27/04/2017 07:17:44
Buenas a todos.

Para un proyecto en el que estoy trabajando, necesito crear un contador incremental en hexadcimal, que sea muy rápido y que deje el numero con 64 caracteres (ceros de relleno)

Como lo hago ahora es simplemente incrementar un entero y convertirlo en hexadecimal mediante la instrucción hex().

¿Existe alguna forma más rápida e hacer eso?

Mi problema es que la generación de este contador es la parte quemás tiempo consume del programa y quiero mejorarlo.

Pongo ejemplo de lo que hago

1
2
3
4
5
for nDecimal in range(1000):
     aHex = hex(nDecimal)
     aHex = aHex[2:].upper()
     aHex = ((64-len(aHex)) * '0') + aHex
     print(aHex)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Generación de un contador Hexadecimal rápido

Publicado por tincopasan (1082 intervenciones) el 27/04/2017 10:07:12
te muestro otra forma de hacerlo, lo de si es más rápido o no comparalo vos!
1
2
for nDecimal in range(1000):
        print("{0:X}".format(nDecimal).zfill(64))
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Generación de un contador Hexadecimal rápido

Publicado por Xavier (4 intervenciones) el 27/04/2017 16:59:56
Muchas gracias por la respuesta.

He hecho pruebas de tiempo con tu solución y veo que los tiempos son los mismos.

Necesito algo que reduzca mucho el tiempo.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Generación de un contador Hexadecimal rápido

Publicado por tincopasan (1082 intervenciones) el 27/04/2017 23:07:17
supongo que estás midiendo el tiempo, así que lo que se me ocurre es:
1
2
3
4
5
import numpy as np
def otra():
    numero = np.arange(1000)
    for n in numero:
        print("{0:X}".format(n).zfill(64))

esto debería ser más rápido, probalo y me comentas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Generación de un contador Hexadecimal rápido

Publicado por Xavier (4 intervenciones) el 28/04/2017 23:59:51
Buenas.

Es mas lenta.

Paso de 0.064 a 0.094 segundos para hacer 10000

¿Alguna otra idea?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar