我需要在[-n,-1] union [1,n]中对k数进行采样而不进行替换。为什么这段代码不起作用?
random.sample(range(-n,n+1).remove(0),k)
我得到了
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/usr/lib/python2.7/random.py", line 319, in sample
n = len(population)
TypeError: object of type 'NoneType' has no len()
答案 0 :(得分:1)
Sheets("Sheet1").Cells(8, Colnum + 1).Formula = "=iferror(vlookup(" & Sheets("Sheet1").Cells(8, 3).Address(False, True) & ",'Sheet2'!" & Range(Cells(3, 2), Cells(20, 10)).Address & "," & Colnum & ",False), ""NA"")"
是一个现场操作。它修改列表,并返回none。这就是你看到错误的原因。您应该单独创建列表并将其传递给remove
:
sample
如果你想在一个陈述中这样做,你可以分别创建范围的两个部分并添加它们。
>>> l = range(-n, n+1)
>>> l.remove(0)
>>> random.sample(l, k)