Get a random boolean in python?

前端 未结 8 1097
无人共我
无人共我 2020-12-04 06:00

I am looking for the best way (fast and elegant) to get a random boolean in python (flip a coin).

For the moment I am using random.randint(0, 1) or

8条回答
  •  隐瞒了意图╮
    2020-12-04 06:40

    I was curious as to how the speed of the numpy answer performed against the other answers since this was left out of the comparisons. To generate one random bool this is much slower but if you wanted to generate many then this becomes much faster:

    $ python -m timeit -s "from random import random" "random() < 0.5"
    10000000 loops, best of 3: 0.0906 usec per loop
    $ python -m timeit -s "import numpy as np" "np.random.randint(2, size=1)"
    100000 loops, best of 3: 4.65 usec per loop
    
    $ python -m timeit -s "from random import random" "test = [random() < 0.5 for i in range(1000000)]"
    10 loops, best of 3: 118 msec per loop
    $ python -m timeit -s "import numpy as np" "test = np.random.randint(2, size=1000000)"
    100 loops, best of 3: 6.31 msec per loop
    

提交回复
热议问题