Zufällige Auswahl von Elementen aus einer Liste in Python
-
Verwenden Sie das Modul
random
, um ein zufälliges Element aus einer Liste in Python auszuwählen -
Verwenden Sie das Modul
secrets
, um ein zufälliges Element aus einer Liste in Python auszuwählen -
Verwenden Sie das Modul
NumPy
, um ein zufälliges Element aus einer Liste in Python auszuwählen
Dieses Tutorial zeigt Ihnen, wie Sie in Python ein zufälliges Element aus einer Liste auswählen. Es gibt mehrere einfache Möglichkeiten, dies zu erreichen, die alle den Import von Python-Modulen beinhalten.
Dieses Tutorial behandelt Lösungen, die die Module random
, secrets
und NumPy
benötigen.
Beachten Sie, dass alle diese Lösungen, die vorgestellt werden, Pseudo-Zufallszahlengeneratoren (PRNG) verwenden werden.
Verwenden Sie das Modul random
, um ein zufälliges Element aus einer Liste in Python auszuwählen
Das am häufigsten verwendete Modul zur Randomisierung ist das Modul random
. Dieses Modul implementiert pseudo-zufällige Hilfsfunktionen zur Unterstützung von Operationen, die eine Randomisierung beinhalten.
Nehmen wir an, wir wollen einen zufälligen Namen aus einer Liste auswählen, als ob es sich um einen Wahlzettel handeln würde.
["John", "Juan", "Jane", "Jack", "Jill", "Jean"]
Um einen zufälligen Namen aus dieser Liste auszuwählen, verwenden wir random.choice()
, das ein Element aus den gegebenen verfügbaren Daten auswählt.
import random
names = ["John", "Juan", "Jane", "Jack", "Jill", "Jean"]
def selectRandom(names):
return random.choice(names)
print("The name selected is: ", selectRandom(names))
Die Ausgabe wird natürlich variabel und zufällig sein. Es kann also jeder der sechs Namen sein, die in der Variable names
gespeichert sind.
Verwenden Sie das Modul secrets
, um ein zufälliges Element aus einer Liste in Python auszuwählen
Das Modul secrets
wird im Wesentlichen für den gleichen Zweck wie random
verwendet. Allerdings bietet secrets
eine kryptographisch sichere Methode zur Implementierung von PRNG.
In realen Anwendungen wie dem Speichern von Passwörtern, Authentifizierung, Ver- und Entschlüsselung und Token. secrets
sind viel sicherer als die Verwendung von random
, da sie nur für Simulationen oder Operationen geeignet sind, die keine sensiblen Daten verarbeiten.
In diesem Problem bieten beide Module den gleichen Wert, da wir keine sensiblen Daten handhaben und dies für die Simulation tun.
Wir werden für dieses Beispiel die gleiche Liste von names
verwenden. secrets
hat auch eine Version der Funktion choice()
, die die gleiche variable Ausgabe wie random.choice()
erzeugt.
import secrets
names = ["John", "Juan", "Jane", "Jack", "Jill", "Jean"]
def selectRandom(names):
return secrets.choice(names)
print("The name selected is: ", selectRandom(names))
Verwenden Sie das Modul NumPy
, um ein zufälliges Element aus einer Liste in Python auszuwählen
Das NumPy
Modul hat auch Hilfsfunktionen für die Randomisierung und hat einige expansive Werkzeuge als Argumente für seine choice()
Funktion.
Wieder werden wir die gleiche Liste von names
benutzen, um die Funktion numpy.random.choice()
zu demonstrieren.
import numpy
names = ["John", "Juan", "Jane", "Jack", "Jill", "Jean"]
def selectRandom(names):
return numpy.random.choice(names)
print("The name selected is: ", selectRandom(names))
Die Funktion wird die gleiche Variablenausgabe zurückgeben, die die beiden anderen Module erzeugt haben.
NumPy
liefert auch andere Argumente für choice()
, um mehrere Ausgaben in Form einer Liste zu erzeugen.
Das zweite Argument akzeptiert einen ganzzahligen Wert, um zu bestimmen, wie viele Zufallselemente zurückgegeben werden sollen. Nehmen wir an, wir wollen 4 zufällige Elemente aus der Liste names
zurückgeben.
def selectRandom(names):
return numpy.random.choice(names, 4)
print("The names selected are: ", selectRandom(names))
Beispielausgabe:
The names selected are: ['John', 'Jill', 'Jill', 'Jill']
Es besteht die Wahrscheinlichkeit, dass dasselbe Element im randomisierten Ergebnis mehr als einmal wiederholt wird.
Wenn Sie es vorziehen, dass das Ergebnis eindeutig ist, können wir ein drittes “boolesches” Argument übergeben, das eine ersatzlose Zufallsstichprobe ermöglicht.
def selectRandom(names):
return numpy.random.choice(names, 4, False)
Ausgabe der Stichprobe:
The names selected are: ['Jill', 'John', 'Jack', 'Jean']
Die Funktion wird immer eine eindeutige Liste ohne doppelte Einträge erzeugen.
Ein großer Nachteil, wenn wir das dritte Argument hinzufügen, ist die Laufzeit der Funktion, da sie eine hinzugefügte Aufgabe ausführt, um auf Dubletten zu prüfen und diese durch ein Element zu ersetzen, das in den Ergebnissen noch nicht existiert.
Zusammenfassend lässt sich sagen, dass die Auswahl zufälliger Elemente aus einer Python-Liste durch die Verwendung eines dieser drei Module erreicht werden kann: random
, secrets
oder NumPy
. Jedes dieser Module hat seine Vor- und Nachteile.
Wenn Sie eine kryptographisch sichere PRNG-Methode haben wollen, dann ist secrets
das beste Modul dafür. Wenn Ihr Zweck nur die Simulation oder die Manipulation nicht-sensibler Daten ist, verwenden Sie entweder random
oder NumPy
. Wenn Sie mehr als ein einzelnes Zufallsergebnis wollen, dann verwenden Sie NumPy
.
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedInVerwandter Artikel - Python List
- Alle Vorkommen eines Elements aus einer Liste in Python entfernen
- Konvertieren eines Dictionaries in eine Liste in Python
- Duplikate aus Liste entfernen in Python
- Wie erhält man den Durchschnitt einer Liste in Python
- Was ist der Unterschied zwischen den Listenmethoden append und extend
- Wie man eine Liste in Python in eine Zeichenkette konvertiert