所以我要做的是为游戏策划者创建一个包含 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贡献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)
忽然笑
TA贡献1806条经验 获得超5个赞
该函数random.sample执行您想要的操作:
import random
def generatePassword():
numbers = range(0, 9)
return random.sample(numbers, 5)
def main() :
print(generatePassword())
main()
添加回答
举报
0/150
提交
取消