Adams Antwort ist ziemlich schnell, aber ich fand, dass random.getrandbits(1)
das viel schneller ist. Wenn Sie wirklich einen Booleschen statt einen langen wollen, dann
bool(random.getrandbits(1))
ist immer noch etwa doppelt so schnell wie random.choice([True, False])
Beide Lösungen müssen import random
Wenn höchste Geschwindigkeit keine Priorität hat, random.choice
liest sich das definitiv besser
$ python -m timeit -s "import random" "random.choice([True, False])"
1000000 loops, best of 3: 0.904 usec per loop
$ python -m timeit -s "import random" "random.choice((True, False))"
1000000 loops, best of 3: 0.846 usec per loop
$ python -m timeit -s "import random" "random.getrandbits(1)"
1000000 loops, best of 3: 0.286 usec per loop
$ python -m timeit -s "import random" "bool(random.getrandbits(1))"
1000000 loops, best of 3: 0.441 usec per loop
$ python -m timeit -s "import random" "not random.getrandbits(1)"
1000000 loops, best of 3: 0.308 usec per loop
$ python -m timeit -s "from random import getrandbits" "not getrandbits(1)"
1000000 loops, best of 3: 0.262 usec per loop # not takes about 20us of this
Fügte dieses hinzu, nachdem ich @ Pavel's Antwort gesehen hatte
$ python -m timeit -s "from random import random" "random() < 0.5"
10000000 loops, best of 3: 0.115 usec per loop
not not random.getrandbits(1))
ist das schneller alsbool
;)from random import getrandbits
die Attributsuche vermeiden. :-)würde auch funktionieren.
quelle
Eine schnellere Methode gefunden:
quelle
random() > 0.5
wertet sich schon zu einem Bool aus, der noch schneller ist!random() >= 0.5
Andernfalls sind Sie ein bisschen voreingenommen in Richtung Falsch.random() < 0.5
ist sinnvoller, da das Ändern von 0,5 auf eine andere Wahrscheinlichkeit wie erwartet funktioniertich mag
quelle
Wenn Sie eine Anzahl von zufälligen Booleschen Werten generieren möchten, können Sie das Zufallsmodul von numpy verwenden. Aus der Dokumentation
gibt 10 zufällige einheitliche ganze Zahlen im offenen Intervall zurück [0,2]. Das
size
Schlüsselwort gibt die Anzahl der zu generierenden Werte an.quelle
Ich war neugierig, wie sich die Geschwindigkeit der numpy Antwort gegenüber den anderen Antworten verhält, da dies in den Vergleichen nicht berücksichtigt wurde. Um einen zufälligen Bool zu generieren, ist dies viel langsamer, aber wenn Sie viele generieren möchten, wird dies viel schneller:
quelle
Sie können die Faker-Bibliothek verwenden , die hauptsächlich zum Testen verwendet wird, aber eine Vielzahl von gefälschten Daten bereitstellen kann.
Installieren Sie: https://pypi.org/project/Faker/
quelle
Eine neue Sichtweise auf diese Frage würde die Verwendung von Faker beinhalten, mit dem Sie einfach installieren können
pip
.quelle
fake.boolean()
Syntax ist sauber und für andere leicht zu verstehen.