Python – Generate random number except K in list

Sometimes, while working with python, we can have a problem in which we need to generate random number. This seems quite easy but sometimes we require a slight variation of it. That is, we require to generate random number from a list except K. Lets discuss certain ways in which this task can be performed.

Method #1 : Using choice() + list comprehension
The combination of above functions can be used to perform this task. In this, we first filter out the numbers except K using list comprehension and then feed that list to choice() for random number generation.

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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))

chevron_right


Output :

The original list is : [4, 7, 8, 4, 6, 10]
The random number except K is : 8

 

Method #2 : Using filter() + lambda + choice()
This is yet another way in which this task can be performed. In this, we perform method of creating new list using filter and lambda.

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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))

chevron_right


Output :

The original list is : [4, 7, 8, 4, 6, 10]
The random number except K is : 8



My Personal Notes arrow_drop_up
Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.