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

2024-04-25 20:22:40 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

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))

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


Tags: importnumpyasnprandomjohnsebastian代码生成
1条回答
网友
1楼 · 发布于 2024-04-25 20:22:40

numpy.random.choice的签名为:

 numpy.random.choice(a, size=None, replace=True, p=None)

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

 print(np.random.choice(choices, 10, p=p))

相关问题 更多 >