python - 执行具有列表异常的 randrange()
问题描述
我有一个清单:
l = [6,20,1,3,34]
我做了一个函数,它生成 1 - 50 之间的随机数字:
from random import randrange
def rand():
return randrange(1,50,1)
我想从列表中获取数字,并且我想多次运行该函数,并且输出的值应该与上面列表中的值不同。
很热地写我的函数有例外?
谢谢你。
解决方案
你可以使用:
def rand():
n = randrange(1,, 50)
while n in l:
n = randrange(1, 50)
return n
while
这个想法是使用循环生成一个随机数,直到该数字不在列表中
或者你可以使用:
from random import choice
l = [6,20,1,3,34]
not_in_my_list = list(set(list(range(1, 51))).difference(l))
def rand():
return choice(not_in_my_list)
另一种解决方案是生成一个列表,其中包含不在列表中但在您想要的范围内的所有元素,然后使用random.choice
推荐阅读
- r - (R):将 data.table 行变成向量
- c# - 如何在列表框中选择随机行,然后通过单击 C# 中的按钮将其保存到文件中?
- javascript - 函数内的函数未执行
- amazon-web-services - CreateStack 操作:模板格式错误:模板的 Resources 块中未解析的资源依赖项 [VpcId]
- javascript - 如何将表格单元格位置计算为数组?
- python - 无法在 Django 中调试或使用 pdb:bdb.BdbQuit
- arrays - 查询从 D 列返回值,但 B 列中不能有两个值写“G”,如何进行?
- javascript - 我如何制作像这个网站 http://ejosue.com 这样的滑动框
- c# - 处理程序“aspNetCore”的模块列表中有一个错误模块“AspNetCoreModuleV4”
- css - CSS:我的 div 需要坐在它的底部包装 div!不仅仅是可视屏幕