A veces, mientras trabajamos con python, podemos tener un problema en el que necesitamos generar un número aleatorio. Esto parece bastante fácil, pero a veces necesitamos una ligera variación. Es decir, requerimos generar un número aleatorio de una lista excepto K. Analicemos ciertas formas en las que se puede realizar esta tarea.
Método #1: Uso choice()
de la comprensión de lista +
La combinación de las funciones anteriores se puede utilizar para realizar esta tarea. En esto, primero filtramos los números excepto K usando la comprensión de listas y luego alimentamos esa lista a choice() para la generación de números aleatorios.
# Python3 code to demonstrate # Generate random number except K in list # using choice() + list comprehension import random # Initializing list test_list = [4, 7, 8, 4, 6, 10] # printing original list print("The original list is : " + str(test_list)) # Initializing K K = 4 # Generate random number except K in list # using choice() + list comprehension res = random.choice([ele for ele in test_list if ele != K]) # printing result print ("The random number except K is : " + str(res))
The original list is : [4, 7, 8, 4, 6, 10] The random number except K is : 8
Método n.º 2: usarfilter() + lambda + choice()
Esto es otra forma más en la que se puede realizar esta tarea. En esto, realizamos el método de crear una nueva lista usando filtro y lambda.
# Python3 code to demonstrate # Generate random number except K in list # using choice() + filter() + lambda import random # Initializing list test_list = [4, 7, 8, 4, 6, 10] # printing original list print("The original list is : " + str(test_list)) # Initializing K K = 4 # Generate random number except K in list # using choice() + filter() + lambda res = random.choice(list(filter(lambda ele: ele != K, test_list))) # printing result print ("The random number except K is : " + str(res))
The original list is : [4, 7, 8, 4, 6, 10] The random number except K is : 8
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