ein Wort mischen

8

Wie mische ich die Buchstaben eines Wortes zufällig in Python?

Zum Beispiel könnte das Wort "cat" in "act", "tac" oder "tca" geändert werden.

Ich möchte dies tun ohne mit eingebauten Funktionen

    
babikar 06.07.2010, 01:14
quelle

7 Antworten

7
%Vor%

... oder anders gemacht, inspiriert von Dominics Antwort ...

%Vor%     
icktoofay 06.07.2010 01:17
quelle
7

Sehen Sie sich die Fisher-Yates-Mischung an. Es ist extrem platz- und zeiteffizient und einfach zu implementieren.

    
derekerdmann 06.07.2010 01:31
quelle
3

Dieses Kochbuchrezept enthält eine einfache Implementierung von Fisher-Yates, die in Python gemischt werden. Da Sie ein string-Argument haben und eine Zeichenfolge zurückgeben müssen, benötigen Sie natürlich eine erste Anweisung (z. B. den Argumentnamen s ) wie ary = list(s) und in der return -Anweisung verwenden Sie ''.join , um das Array von Zeichen ary wieder in eine einzige Zeichenfolge zu setzen.

    
Alex Martelli 06.07.2010 02:22
quelle
2
%Vor%

Verwendet wie:

%Vor%     
Dominic Bou-Samra 06.07.2010 01:20
quelle
0

Um ein etwas niedrigeres Niveau zu sein, tauscht es einfach den aktuellen Buchstaben mit einem zufälligen Buchstaben aus, der danach kommt.

%Vor%

Dies wird nicht alle möglichen Permutationen mit gleicher Wahrscheinlichkeit erzeugen, aber trotzdem könnte es in Ordnung sein für das, was Sie wollen

    
Jamie Wong 06.07.2010 01:38
quelle
0

Hier ist ein Weg, der random.shuffle nicht benutzt. Hoffentlich ist random.choice in Ordnung. Sie sollten der Frage Einschränkungen hinzufügen

%Vor%

Diese Methode ist nicht so effizient wie random.shuffle, wird also bei langen Wörtern langsam sein

    
John La Rooy 06.07.2010 01:48
quelle
0
%Vor%     
John La Rooy 06.07.2010 11:46
quelle

Tags und Links