Python 在很短的范围内生成更多的随机值

Python 在很短的范围内生成更多的随机值,python,random,Python,Random,我想生成50个介于1和4之间的随机数,我也希望有浮点数,但这不起作用。任何帮助都将不胜感激 randomlist = random.sample(range(1, 4), 50) print(randomlist) 这就是我一直得到的 > --------------------------------------------------------------------------- ValueError Tracebac

我想生成50个介于1和4之间的随机数,我也希望有浮点数,但这不起作用。任何帮助都将不胜感激

randomlist = random.sample(range(1, 4), 50)
print(randomlist)
这就是我一直得到的

> --------------------------------------------------------------------------- ValueError                                Traceback (most recent call
> last) <ipython-input-119-5bcf53f2047d> in <module>
> ----> 1 randomlist = random.sample(range(1, 4), 50)
>       2 print(randomlist)
> 
> C:\ProgramData\Anaconda3\lib\random.py in sample(self, population, k)
>     319         n = len(population)
>     320         if not 0 <= k <= n:
> --> 321             raise ValueError("Sample larger than population or is negative")
>     322         result = [None] * k
>     323         setsize = 21        # size of a small set minus size of an empty list
> 
> ValueError: Sample larger than population or is negative
--------------------------------------------------------------------------------------ValueError回溯(最近的调用)
>最后)在
>--->1 randomlist=random.sample(范围(1,4,50))
>2打印(随机列表)
> 
>样本中的C:\ProgramData\Anaconda3\lib\random.py(self、population、k)
>319 n=len(总体)
>320如果不是0 321,则提升值错误(“样本大于总体或为负值”)
>322结果=[无]*k
>323 setsize=21#小集合的大小减去空列表的大小
> 
>ValueError:样本大于总体或为负值
试试这个:

import random
randomlist = [random.uniform(1,4) for i in range(50)]


这回答了你的问题吗?它确实提到:
如果样本大小大于总体大小,则会引发ValueError
您可能希望
random.choices()
用于离散值或
random.uniform()
和friends用于浮动。尝试使用numpy的
np.random.rand(50)*3+1