2017-05-02 6 views
0

Wie kann ich aus einer gegebenen Zeichenfolge zufällige Wörter generieren, wobei jedes Wort unterschiedliche zufällige Längen in Python hat ?. Dies ist der Code, den ich bis jetzt habe:Generieren Sie zufällige Wörter mit unterschiedlichen Längen

from random import shuffle, randint, choice 
f = open("random_words.txt", 'w') 
words = input("enter characters: ") 
min_len = int(input("enter min lenght: ")) 
max_len = int(input("enter max lenght: ")) 
real_max_len = max_len + 1 
ran_len = randint(min_len, max_len) 
sent_len = int(input("enter amt of words to generate: ")) 

l_word = list(words) 
word_len = randint(min_len, max_len) 

for scat in range(sent_len): 
    shuffle(l_word) 
    sh_word = "".join(l_word) 
    for times in range (ran_len): 
     ran_word = choice(sh_word + " ") 
     f.write(ran_word + "") 
    #f.write(sh_word + " ") 

f.close() 
+0

Können Sie beschreiben, wie sich Ihr Code verhält und wie er sich von dem unterscheidet, nach dem Sie suchen? – glibdud

+0

Wenn Sie Wörter sagen, meinen Sie Wörter im Wörterbuch oder nur eine Sammlung von Zeichen, die eine Zeichenfolge sind? – RandomHash

Antwort

1

Sie haben das Problem zu kompliziert gemacht. Sie können einfach shuffle verwenden, um die Buchstaben neu anzuordnen, und dann die ersten n Buchstaben verwenden, um ein neues Wort zu erstellen, wobei n eine Zufallszahl zwischen der minimalen und maximalen Länge ist.

word_list = list(words) 

for scat in range(sent_len): 
    shuffle(word_list) 
    new_word = ''.join(word_list[:randint(min_len, max_len)]) 
+0

Oder vielleicht 'random.sample' ... –

+0

Danke. Dachte nie daran – ebere

Verwandte Themen