【问题标题】:Difference between variable declared before or during method call in PythonPython中方法调用之前或期间声明的变量之间的区别
【发布时间】:2018-07-06 21:32:44
【问题描述】:

此代码产生正确的结果(即只有约翰的):

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

为什么第一个有效,第二个无效?为什么在方法调用之前和期间声明的变量有区别?

【问题讨论】:

    标签: python numpy variables methods


    【解决方案1】:

    numpy.random.choice 的签名是:

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

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

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

    【讨论】:

      猜你喜欢
      • 2010-09-29
      • 2015-07-29
      • 1970-01-01
      • 2021-09-09
      • 2011-06-19
      • 2020-04-20
      • 2012-11-28
      • 1970-01-01
      相关资源
      最近更新 更多