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.

Forma pythonica de crear un número aleatorio grande en base 29.

Estoy creando un programa que tiene que manejar enteros bastante grandes en Python. Que van desde 0-104677. Internamente, los represento como enteros en base-29. Utilizando el alfabeto: 012345679ABCDEFGHIJKLMNOPQRS.

He creado una función para crear una variable aleatoria en base-29 de cualquier longitud en Python. ¿Pero hay alguna manera más corta y más “pythonica” posible? (si esto es incluso una forma adecuada de hacerlo).

La función para crear un número aleatorio en base-29:

import random

def random_base(base_number = 29, length = 10):
    alfabeto = "012345679ABCDEFGHIJKLMNOPQRS"
    return [alfabeto[random.randint(0,base_number - 1)] for _ in range(length)]

Por lo tanto, ¿hay alguna función incorporada en Python para hacer esto, o es esta la manera de hacerlo?

¡Por favor comenta si hay algo que no está claro!

¡Gracias de antemano!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como modelo de lenguaje de IA, no estoy al tanto de ninguna función de Python incorporada que pueda generar un número aleatorio en base 29. Sin embargo, tu enfoque me parece válido. Estás utilizando el módulo random para generar un índice aleatorio y luego utilizando ese índice para seleccionar un carácter de la cadena alfabeto. El uso de una comprensión de lista también es una forma concisa y pythonica de lograr esto. Por lo tanto, creo que tu función es una buena solución para generar números aleatorios en base 29 en Python.

Comments are closed.