python - 如何使用循环将不同的随机数输入到列表中?
Posted
技术标签:
【中文标题】python - 如何使用循环将不同的随机数输入到列表中?【英文标题】:python - How to input distinct random numbers into a list using loop? 【发布时间】:2018-05-01 23:24:04 【问题描述】:我的目标是将 4 个不同的数字输入到一个名为 var 的列表中。如果 2 个随机数给出相同的数字,则不附加,循环迭代以选择一个新的随机数。但是我的代码只会给出不相等的随机数列表。例如,如果生成的随机数是 1,4,4,3,我的 list('var') 将只有 1,4,3。即,总共只有 3 个数字。如何更正代码以将总共 4 个唯一随机数附加到列表中?
import random
var=[]
end=4
for i in range(0,end,1):
k=random.randint(0,9)
print k
if k not in var:
var.append(k)
else:
end+=1
【问题讨论】:
执行此操作的正确方法是使用 random.shuffle 或 random.sample 【参考方案1】:所以这里的要求是您继续执行该操作,直到您的数组长度为 4,因此您可以使用while len(arr) < 4
。为您编码的示例:
import random
var=[]
end=4
while len(var) < end:
k=random.randint(0,9)
print k
if k not in var:
var.append(k)
更好的方法是random.sample
>>> import random
>>> random.sample(range(0, 9), 4) # xrange is using python 2.7
阅读here。
【讨论】:
以上是关于python - 如何使用循环将不同的随机数输入到列表中?的主要内容,如果未能解决你的问题,请参考以下文章
使用python在循环内通过相同的矩阵-矩阵乘法创建不同的矩阵
在 Python scikit learn 中为 12 个随机森林创建循环
Python问题求助--如何将循环程序中每次输入的数据循环使用,即退出当前循环程序后,再次运行该循环程序时可以使用原先输入的数据信息?