Python中方法调用之前或期间声明的变量之间的差异

Python中方法调用之前或期间声明的变量之间的差异,python,numpy,variables,methods,Python,Numpy,Variables,Methods,此代码生成正确的结果(即仅John的): 虽然此代码没有(生成任何似乎概率相等的内容): 为什么第一个有效而第二个无效?为什么在方法调用之前或期间声明的变量之间存在差异?的签名是: 在第一次调用中,您正在为p传递一个值。在第二次调用中,使用p变量作为replace的值。将第二次呼叫更改为: print(np.random.choice(choices, 10, p=p)) import numpy as np p = [1,0,0,0,0,0] choices = ["John", "Ada

此代码生成正确的结果(即仅John的):

虽然此代码没有(生成任何似乎概率相等的内容):

为什么第一个有效而第二个无效?为什么在方法调用之前或期间声明的变量之间存在差异?

的签名是:

在第一次调用中,您正在为
p
传递一个值。在第二次调用中,使用
p
变量作为
replace
的值。将第二次呼叫更改为:

 print(np.random.choice(choices, 10, p=p))
import numpy as np
p = [1,0,0,0,0,0]
choices = ["John", "Adam", "Anna", "Joe", "Sebastian", "Julius"]
print(np.random.choice(choices,10, p))
 numpy.random.choice(a, size=None, replace=True, p=None)
 print(np.random.choice(choices, 10, p=p))