Python-entfernen Sie ein Element aus einer zufälligen Liste, nach der Ernte
Wie würde ich gehen darum, dass ein random.Wahl zum wählen eines Elements aus einer Liste(einmal, zweimal, oder dreimal...) und dann aus der Liste entfernt werden.
zum Beispiel könnte es sein, 1-10 und nach die Anzahl 1 angenommen wird, nicht mehr erlauben, 1, ausgewählt zu werden, bis das Programm zurücksetzen
Dies ist eine erfundene Beispiel mit Farben und Nummern austauschen meine Worte
colors = ["red","blue","orange","green"]
numbers = ["1","2","3","4","5"]
designs = ["stripes","dots","plaid"]
random.choice (colors)
if colors == "red":
print ("red")
random.choice (numbers)
if numbers == "2":##Right here is where I want an item temporarily removed(stripes for example)
random.choice (design)
Ich hoffe, das hilft, ich versuche, meine eigentliche Projekt, ein Geheimnis =\ sorry für die Unannehmlichkeiten
Vergessen zu erwähnen, die in den code nach rot gepflückt wird, das muss auch entfernt werden,
- Nun, wie würden Sie es angehen? Persönlich würde ich wahrscheinlich überspringen
random.choice
, und stattshuffle
die Liste und dannpop
den letzten Punkt aus, aber zeigen Sie uns, was Sie versucht haben. - Vielleicht verfolgen Sie die Elemente, die Sie gewählt haben, so weit, und müssen nicht wählen Sie von dort aus. Das problem ist, dass angesichts der großen Mengen aus, die Sie bereits ausgewählt haben einen großen Teil der Elemente, könnte es eine Weile, um zu finden, ein Element, das bisher nicht gewählt wurde, mit zufälligen zahlen.
- Knallen Sie das Element aus der Liste würde nur erlauben, jedes Element abgeholt werden, sobald die richtige? Ich bin auf der Suche nach so etwas wie die Nummer eins sein könnte, gezogen, 3 mal und dann entfernt, da nicht abgeholt werden, wieder
- überprüfen Sie heraus meine Antwort geändert
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
random.choice
undlist.remove
Oder, wie
@Henry Keiter
gesagt, das Sie verwenden könnenrandom.shuffle
Wenn Sie noch brauchen, Ihre gemischt Liste nach, dass Sie tun können, wie folgt:
- Und nun erhalten Sie eine leere Liste mylist2, und Ihre hergeschoben Liste mylist.
BEARBEITEN
Zum code, den Sie geschrieben. Sie schreiben
random.choice(colors)
, aber wasrandom.choice
tut? Es Entscheidungen, die zufällige Antwort und gibt(!) es. So haben Sie zu schreibenshuffle
die Liste einmal, dann halten Sie knallen... keine Notwendigkeit, mischen Sie es... Sie brauchen auch nicht zu prüfen, die Länge, nur dass es die truthy...shuffle(mylist); while(mylist): print mylist.pop()
genug()
rund um diewhile (mylist)
entweder... sorry - war Sie, das Beispiel zu eng 🙂()
auch 🙂'red'
aus der Liste, Sie 'verlieren' es, bis Sie es schaffen wieder (mylist.append("red")
), oder bis Sie das Programm neu starten. Wenn Sie möchten, dass Ihre Liste zu halten alle der Variablen, sondern stellen Sie nicht zweimal gewählt, können Sie eine Kopie dermylist
:mylist_copy = mylist
, vor dem entfernen von Sachen ausmylist