我在打印随机数列表中看到了多个线程,但是没有看到符合我的特定要求的线程,而且我似乎无法正确地做到这一点。
我想开发一个代码,该代码将在某个间隔上生成一个随机数列表,该列表仅是一个随机长度,在某些单独的间隔内,而且,此列表中也需要重复。我也想在1行中做到这一点。
我使用random.sample进行了很好的尝试,但是sample不包含重复项,这也不会让我使列表内的数字范围大于列表本身。(例如,它不能生成长度为5的数字,但数字大于1到5的列表。)
>> a = random.sample(range(10), random.randint(1,10,1))
>> print(a)
[6, 3, 4, 2, 5, 7, 8]
为了摆脱无重复的问题和大于长度的数字的问题,我尝试了此操作,但是无法将范围设为随机,否则会收到TypeError:
>> a = [random.randint(1,20) for x in range(1, 10)]
>> print(a)
[8, 7, 20, 20, 5, 18, 9, 3, 19]
这是我尝试随机范围的版本:
>> a = [random.randint(1,20) for x in random.randrange(1,10)]
>> print(a)
Traceback (most recent call last):
File "<ipython-input-258-b3a6b0409007>", line 1, in <module>
a = [random.randint(1,20) for x in random.randrange(1,10)]
TypeError: 'int' object is not iterable
不太确定为什么我不能在某个时间间隔上创建随机范围,但是我是一个初学者,所以我确定我只是缺少一些东西。
random.randrange(1,10)
如错误所示返回一个整数。您可以将其用作range
函数的上限,如下所示:
a = [random.randint(1,20) for x in range(1, random.randrange(1,10))]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句