it-swarm.com.de

Holen Sie sich eine Stichprobe mit Ersatz

Ich habe diese Liste:

colors = ["R", "G", "B", "Y"]

und ich möchte 4 zufällige Buchstaben davon erhalten, aber auch Wiederholung.

Wenn Sie diese Option ausführen, erhalten Sie nur 4 eindeutige Buchstaben, niemals aber wiederholte Buchstaben:

print(random.sample(colors,4))

Wie bekomme ich eine Liste mit 4 Farben, wobei Buchstaben wiederholt werden können?

16
kev xlre

In Python 3.6 wird die neue Funktion random.choices () das Problem direkt ansprechen:

>>> from random import choices
>>> colors = ["R", "G", "B", "Y"]
>>> choices(colors, k=4)
['G', 'R', 'G', 'Y']
20

Mit random.choice :

print([random.choice(colors) for _ in colors])

Wenn die Anzahl der benötigten Werte nicht der Anzahl der Werte in der Liste entspricht, verwenden Sie range:

print([random.choice(colors) for _ in range(7)])

Ab Python 3.6 können Sie auch random.choices (Plural) verwenden und die Anzahl der benötigten Werte als Argument k angeben.

16
trincot

Versuchen Sie numpy.random.choice ( documentation numpy-v1.13 ): 

import numpy as np
n = 10 #size of the sample you want
print(np.random.choice(colors,n))
11
Priyank

Dieser Code liefert die gewünschten Ergebnisse. Ich habe jeder Zeile Kommentare hinzugefügt, um Ihnen und anderen Benutzern zu helfen, den Prozess zu verfolgen. Bitte zögern Sie nicht, Fragen zu stellen.

import random

colours = ["R", "G", "B", "Y"]  # The list of colours to choose from
output_Colours = []             # A empty list to append results to
Number_Of_Letters = 4           # Allows the code to easily be updated

for i in range(Number_Of_Letters):  # A loop to repeat the generation of colour
    output_Colours.append(random.sample(colours,1)) # append and generate a colour from the list

print (output_Colours)
0
CodeCupboard