Python | Generar número aleatorio excepto K en la lista

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))
Producción :

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))
Producción :

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *