2017-02-16 1 views
-1

Hey, also das obige Programm soll zufallsbedingt 4 der Elemente aus der Liste namens colors in die andere Liste namens current einfügen. Ich habe die Foren durchgesehen, aber ich kann keine spezifische Hilfe für diesen Fall finden.Python, wie Elemente aus einer Liste nach dem Zufallsprinzip zufügen/anhängen?

Kurz gesagt, gibt es eine schnelle und effiziente Möglichkeit, 4 zufällige Elemente aus einer Liste direkt in eine andere Liste hinzuzufügen?

Dank

Antwort

1

ursprünglichen Code zu beheben, tun

current.append(random.choice(colours)) 

statt

current = random.choice(colours) 

Sie sollten auch current eine lokale Variable machen und senden Sie es eher als eine globale Variable. Im gleichen Licht sollten Sie das Auswahlfeld als Parameter übergeben und nicht an einem globalen Variablenverzeichnis arbeiten. Diese beiden Änderungen geben Ihrer Funktion mehr Flexibilität.

+0

Hey danke für die Antwort, gibt es eine Möglichkeit, dass ich das ohne die Duplikate machen könnte? – JayHunkys

+0

@JayHunkys sicher. In Wörtern müssen Sie die 'aktuelle' Liste überprüfen, um zu sehen, ob sie bereits die nächste Auswahl enthält, bevor Sie sie anhängen. Sehen Sie, wie ich anfange, indem ich die Lösung in Englisch beschreibe? Ich überlasse es dir, verfeinere das ein wenig mehr, damit du es in Code übersetzen kannst. –

+0

@JayHunkys alternativ können Sie ein 'set' verwenden, das die Überprüfung für Sie erledigt –

6

Sie die grundlegende Verwendung von random.sample beschreibt.

>>> colours = ["Red","Yellow","Blue","Green","Orange","White"] 
>>> random.sample(colours, 4) 
['Red', 'Blue', 'Yellow', 'Orange'] 

Wenn Sie Duplikate zulassen möchten, verwenden Sie stattdessen random.choices (neu in Python 3.6).

>>> random.choices(colours, k=4) 
['Green', 'White', 'White', 'Red'] 
Verwandte Themen