2017-03-24 8 views
1

Gibt es in Python eine einfache Möglichkeit, eine Zufallszahl in einem Bereich zu generieren, der eine Teilmenge von Zahlen in diesem Bereich ausschließt?Generieren einer Zufallszahl im Bereich mit Ausnahme einiger Zahlen

Zum Beispiel, ich weiß, dass Sie eine Zufallszahl zwischen 0 und 9 mit erzeugen:

from random import randint 
randint(0,9) 

Was passiert, wenn ich eine Liste habe, zum Beispiel exclude=[2,5,7], dass ich nicht zurückgegeben werden möchte?

+1

Das fühlt sich an wie ein [XY Problem] (https://meta.stackexchange.com/questions/66377/what -ist-das-xy-Problem) für mich. Was versuchst du damit zu erreichen? – Chris

+1

Ich denke, Sie könnten die Umkehrung machen und eine Liste von Zahlen erzeugen, die Sie zurückgeben wollen und dann ['random.choice()'] (https://docs.python.org/2/library/random .html # random.choice) damit – UnholySheep

Antwort

8

Try this:

from random import choice 

print choice([i for i in range(0,9) if i not in [2,5,7]]) 
2

Versuchen Sie, mit so etwas wie dieses:

from random import randint 

def my_custom_random(): 
    exclude=[2,5,7] 
    randInt = randint(0,9) 
    return my_custom_random() if randInt in exclude else randInt 

print(my_custom_random()) 
Verwandte Themen