python - 如何使用循环将不同的随机数输入到列表中?

标签 python for-loop arraylist random unique

我的目标是将 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

最佳答案

所以这里的要求是你继续做这个操作,直到你的数组长度为 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 - 如何使用循环将不同的随机数输入到列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47363262/

相关文章:

python - 使用日志记录附加日志文件

c - strcat 生成崩溃程序 (0xc0000005)

python - 如何在 python 中搜索列表并打印我的条件所在列表中的哪个位置?

java - 如何减少 for 循环中需要大量执行时间的迭代?

java - ArrayList<Double> 插入(java)

java - 将 ArrayList<Object> 存储在 Bundle 中以供 Fragment 使用

python - Pygame 播放列表在后台连续播放

python - 循环中的累积加法

python - 从管理页面隐藏 django-allauth 模型

java - 如何将 String ("dog") 拆分为 Arraylist ['d' , 'o' , 'g' ]?