A veces, mientras trabajamos con registros de Python, podemos tener un problema en el que necesitamos construir una lista de tupla aleatoria. Esto puede tener aplicación en muchos dominios usando juegos y programación día a día. Analicemos ciertas formas en que se puede realizar esta tarea.
Entrada :
N = 4
R = 6
Salida : [(5, 6), (1, 0), (1, 3), (2, 3)]
Entrada :
N = 8
R = 4
Salida : [(2, 3 ) ), (4, 1), (2, 0), (4, 3), (4, 2), (0, 2), (1, 4), (0, 1)]
Método #1: Uso de la comprensión de listas +sample()
Esta es una de las formas en que se puede realizar esta tarea. En esto, la generación de números aleatorios se lleva a cabo usando sample() que, cuando se le da un grupo de números, extrae números aleatorios para formar pares, que se emparejan usando la comprensión de listas.
# Python3 code to demonstrate working of # N Random Tuples list # Using list comprehension + sample() import random # initializing N N = 5 # initializing Tuple element range R = 10 # N Random Tuples list # Using list comprehension + sample() res = [divmod(ele, R + 1) for ele in random.sample(range((R + 1) * (R + 1)), N)] # printing result print("The N random tuples : " + str(res))
The N random tuples : [(2, 5), (6, 10), (4, 7), (10, 2), (2, 2)]
Método #2: Usarproduct() + sample()
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, realizamos la tarea de producir números en un rango usando product() y sample() se usa para extraer N números aleatorios de ellos.
# Python3 code to demonstrate working of # N Random Tuples list # Using product() + sample() import random import itertools # initializing N N = 5 # initializing Tuple element range R = 10 # N Random Tuples list # Using product() + sample() res = random.sample(list(itertools.product(range(R + 1), repeat = 2)), N) # printing result print("The N random tuples : " + str(res))
The N random tuples : [(2, 5), (6, 10), (4, 7), (10, 2), (2, 2)]
Publicación traducida automáticamente
Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA