为了账号安全,请及时绑定邮箱和手机立即绑定

在python中创建一个没有重复的随机数列表

在python中创建一个没有重复的随机数列表

慕姐8265434 2021-08-05 10:08:43
所以我要做的是为游戏策划者创建一个包含 5 个数字的列表,我想消除所有重复项!问题是代码有时会创建一个包含 3 个数字、4 个或有时 5 个数字的列表,它似乎是随机的。我还应该提到我们不允许在grandom.sample或random.shuffle中使用import randomdef generatePassword() :    lis = []    for i in range(5) :        #This checks to see if there are duplicate numbers        r = random.randint(1,9)        if r not in lis :            lis.append(r)        i+=1    return lisdef main() :    print(generatePassword())main()
查看完整描述

3 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

尝试使用带有检查 lis 长度的条件的 while 循环

while len(lis) < 5:

而不是你的 for 循环


查看完整回答
反对 回复 2021-08-05
?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

numpy.random.permutation如果您正在寻找有效且更快的方法,请使用:


import numpy as np

your_list = list(np.random.permutation(np.arange(0,10))[:5])


>>> your_list

[6, 9, 0, 1, 4]

或者,你可以用np.random.choice与replace=False:


your_list = list(np.random.choice(np.arange(0,10), 5, replace=False)


查看完整回答
反对 回复 2021-08-05
?
忽然笑

TA贡献1806条经验 获得超5个赞

该函数random.sample执行您想要的操作:


import random


def generatePassword():

    numbers = range(0, 9)

    return random.sample(numbers, 5)


def main() :

    print(generatePassword())

main()


查看完整回答
反对 回复 2021-08-05
  • 3 回答
  • 0 关注
  • 172 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信