Beste Weg, um eine Liste von Strings in Python zu randomisieren

Ich empfange als Eingabe eine Liste von Strings und muss eine Liste mit diesen gleichen Strings aber in randomisierte Reihenfolge zurückgeben. Ich muss für Duplikate erlauben – dieselbe String kann einmal oder mehr in der Eingabe erscheinen und muss dieselbe Anzahl von Malen in der Ausgabe erscheinen.

Ich sehe mehrere "rohe Gewalt" Wege, dies zu tun (mit Schleifen, Gott verbieten), von denen ich derzeit bin. Allerdings, wissen, Python gibt es wahrscheinlich eine coole Ein-Liner bekommen die Arbeit erledigt, richtig?

4 Solutions collect form web for “Beste Weg, um eine Liste von Strings in Python zu randomisieren”

>>> import random >>> x = [1, 2, 3, 4, 3, 4] >>> random.shuffle(x) >>> x [4, 4, 3, 1, 2, 3] >>> random.shuffle(x) >>> x [3, 4, 2, 1, 3, 4] 

Sieht aus wie das ist der einfachste Weg, wenn nicht die meisten wirklich zufällig ( diese Frage näher erklärt die Grenzen): http://docs.python.org/library/random.html#random.shuffle

Bei einem String- Item , hier ist ein Ein-Liner:

 ''.join([str(w) for w in random.sample(item, len(item))]) 

Sie müssen die Zeichenfolgen in ein Array lesen und dann einen Shuffling-Algorithmus verwenden. Ich empfehle Fisher-Yates shuffle

  • Generiere zufällige UTF-8 String in Python
  • Wie würde ich einen zufälligen Hexdigit-Code-Generator mit .join und für Loops machen?
  • Was ist der beste Weg, um zufällige Strings einer bestimmten Länge in Python zu generieren?
  • Holen Sie sich eine zufällige Boolesch in Python?
  • Extensible voreingenommener Zahlengenerator - Python
  • Python numpy.random.choice in C # mit nicht / einheitlicher Wahrscheinlichkeitsverteilung
  • Schneller Weg, um einen zufälligen Index aus einer Reihe von Gewichten in Python zu erhalten
  • Python: Warum gibt es "random.randint (a, b)" einen Bereich inklusive `b`?
  • Python-String oder if-Anweisung
  • Generieren zufällige Wörter
  • Wie man eine Liste von zufälligen Integer-Vektor erstellt, deren Summe x ist
  • Python ist die beste Programmiersprache der Welt.