我正在寻找最好的方法(快速和优雅)在python中获得一个随机布尔值(抛硬币)。
目前我使用的是随机。Randint(0,1)或random.getrandbits(1)。
还有我不知道的更好的选择吗?
我正在寻找最好的方法(快速和优雅)在python中获得一个随机布尔值(抛硬币)。
目前我使用的是随机。Randint(0,1)或random.getrandbits(1)。
还有我不知道的更好的选择吗?
当前回答
import random
random.choice([True, False])
也会起作用。
其他回答
你可以试试这个,它会随机生成true和false的数组:
A =[bool(i) for i in np.array(np.random.randint(0,2,10))]
出来:[真,真,真,真,真,假,真,假,真,假]
import random
random.choice([True, False])
也会起作用。
我喜欢
np.random.rand() > .5
如果你想生成一些随机布尔值,你可以使用numpy的random模块。来自文档
np.random.randint(2, size=10)
将在开放区间[0,2)中返回10个随机统一整数。关键字size指定要生成的值的数量。
对这个问题的一个新的看法是使用Faker,您可以通过pip轻松安装Faker。
from faker import Factory
#----------------------------------------------------------------------
def create_values(fake):
""""""
print fake.boolean(chance_of_getting_true=50) # True
print fake.random_int(min=0, max=1) # 1
if __name__ == "__main__":
fake = Factory.create()
create_values(fake)