【发布时间】:2018-06-23 02:41:41
【问题描述】:
我想生成一个随机数,并且该随机数应该是唯一的,这意味着它不应重复或再次生成。我尝试制作一个列表,我在每次迭代中追加并检查它是否已经存在于列表中。如果它存在于列表中,则不附加该数字。但我不认为这是一种有效的方法。所以,请帮帮我。
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))
【问题讨论】:
-
你应该生成一个你需要的所有随机数的列表,然后随机播放它们。否则,您将需要不断生成随机数,直到获得不在列表中的随机数(这对于大量数字列表非常耗时)
-
@GarbageCollector 在此问题的范围内,值将是唯一的,因为 shuffle 函数将传递 OP 所需的值范围,这些值都是唯一的。
-
@Ajax1234 同意。
-
在您的情况下,您可能只能选择 1 个随机元素并将其排除在外,还是顺序很重要?