Bisher habe ich herausgefunden, wie man die Datei importiert, neue Dateien erstellt und die Liste zufällig sortiert.
Ich habe Probleme, nur 50 Elemente aus der Liste zufällig auszuwählen, um sie in eine Datei zu schreiben.
def randomizer(input,output1='random_1.txt',output2='random_2.txt',output3='random_3.txt',output4='random_total.txt'):
#Input file
query=open(input,'r').read().split()
dir,file=os.path.split(input)
temp1 = os.path.join(dir,output1)
temp2 = os.path.join(dir,output2)
temp3 = os.path.join(dir,output3)
temp4 = os.path.join(dir,output4)
out_file4=open(temp4,'w')
random.shuffle(query)
for item in query:
out_file4.write(item+'\n')
Also wenn die gesamte Randomisierungsdatei war
example:
random_total = ['9','2','3','1','5','6','8','7','0','4']
Ich möchte 3 Dateien (out_file1 | 2 | 3) mit der ersten zufälligen Menge von 3, der zweiten zufälligen Menge von 3 und der dritten zufälligen Menge von 3 (für dieses Beispiel sollte diejenige, die ich erstellen möchte, 50 haben).
random_1 = ['9','2','3']
random_2 = ['1','5','6']
random_3 = ['8','7','0']
Die letzte '4' wird also nicht enthalten sein, was in Ordnung ist.
Wie kann ich 50 aus der Liste auswählen, die ich zufällig ausgewählt habe?
Noch besser, wie könnte ich zufällig 50 aus der ursprünglichen Liste auswählen?
Antworten:
Wenn die Liste in zufälliger Reihenfolge ist, können Sie einfach die ersten 50 nehmen.
Andernfalls verwenden Sie
random.sample
Hilfstext:quelle
random.sample
auch die ausgewählten Indizes zurückgeben?Eine einfache Möglichkeit, zufällige Elemente auszuwählen, besteht darin, sie zu mischen und dann in Scheiben zu schneiden.
quelle
random.choice(mylist,3)
würde nicht zwei disjunkte Mengen erzeugen, wie dies der Fall war.Ich denke,
random.choice()
ist eine bessere Option.Die Funktion gibt ein Array von 3 zufällig ausgewählten Werten aus der Liste zurück
quelle
random.choice(mylist, 3, replace=False)
. Auch weniger verwirrend zu bedienenimport numpy as np
undnp.random.choice(mylist, 3, replace=False)
Angenommen, Ihre Liste enthält 100 Elemente und Sie möchten 50 davon zufällig auswählen. Hier sind die folgenden Schritte:
Code:
quelle