Reputation: 422
I want to generate a random number, and that random number should be unique, meaning it should not be repeated or generated again. I have tried making a list where I append in every iteration and check if it is already present in the list or not. If it is present in the list, the number is not appended. But I don't think it is an effective method. So, please help me with it.
import random
#an empty list to append randomly generated numbers
empty = []
while True:
#checking from range 500 to 510
number = random.randrange(500, 510)
if number not in empty:
empty.append(number)
else:
pass
#breaking the loop if the length of the numbers is 9
if len(empty) == 9:
break
print("Final list --> " + str(empty))
Upvotes: 7
Views: 15512
Reputation: 1
import random
low=int(input("ENTER LOWER RANGE:"))
upper=int(input("ENTER UPPER RANGE:"))
l=[low]
count=1
l=[low]
count=1
if (upper-low)>=c or c==upper:
while count!=c:
x=random.randint(low,upper)
if x not in l:
l.append(x)
count+=1
for i in range(len(l)):
print(l[i])
Upvotes: 0
Reputation: 73498
You can get such a list of a given number of non-repeating elements taken from a given pool via random.sample
:
>>> random.sample(range(500, 510), 9)
[500, 501, 503, 502, 505, 507, 508, 506, 504]
Upvotes: 25