繁体   English   中英

生成随机长度的随机列表(一种)

[英]Generate Random List of Random Length (sort of)

我正在处理此网站上的问题:

https://www.practicepython.org/exercise/2014/03/05/05-list-overlap.html

我正在进行的练习要求我们生成两个不同长度的随机整数列表。 这是我所拥有的:

import random 
n1 = random.sample(range(1,30), random.randint(5,20))
n2 = random.sample(range(1,40), random.randint(21,40))
n3 = set(n1) & set(n2)
print(n3)

由于某些原因,有时会运行,而不会运行。 这是它没有运行的屏幕截图。 在此处输入图片说明 显然,它与范围的大小有关,因为我使它们越大,返回错误的机会就越少。 但是,我想了解为什么它首先会引发错误,所以我可以一起避免所有错误。

提前致谢。

这被记录为random.sample

返回从填充序列中选择的唯一元素的ak长度列表。 用于随机抽样而无需更换。

屏幕截图显示您使用了:

n2 = random.sample(range(1, 30), random.randint(21, 40))

这意味着您可以尝试从30个编号的池中提取多达40个样本,而这些样本无法替换。 您在实际问题中使用代码提供的示例并不代表您实际上要执行的操作。

随机。 样本 (人口,k)从总体中返回唯一的k个元素

在您的情况下,您的人口为[1,2,3,... 39]。 您的k = random.randint(21,40)。 因此,只要选择的k值为40,您就会遇到异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM