如何在Python中生成多个互不重复的随机数?
你目前的代码是独立生成5个随机数后直接存入列表,没有做重复校验,因此会有概率出现重复值,可通过以下两种方案解决:
方案1:使用random.sample(最简洁高效)
random.sample 是Python标准库专门用于无放回随机采样的方法,生成的结果天生无重复,代码可直接简化为:
import random # 从1-50的整数中随机抽取5个不重复的数 randomNumber = random.sample(range(1, 51), 5)
注意:range(1,51) 是因为Python的range区间为左闭右开,填写51才能包含上限50
方案2:手动实现去重逻辑(适合自定义场景)
如果需要自己控制生成逻辑,可以通过循环+存在性判断实现:
import random randomNumber = [] while len(randomNumber) < 5: current_num = random.randint(1, 50) # 仅当生成的数不在已有列表中时才添加 if current_num not in randomNumber: randomNumber.append(current_num)
两种方法都可以保证最终生成的列表中所有数值唯一,日常使用优先推荐方案1,性能和可读性都更好。
内容的提问来源于stack exchange,提问作者Lili
相关产品推荐
相关产品推荐

