2017-05-02 8 views
0

与えられた文字列から、どのようにランダムな単語を生成できますか?各単語の長さはPythonで異なります。これは私が今まで持っているコードです:異なる長さのランダムな単語を生成する

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

コードの動作と、それがあなたが探しているものとどのように異なるかを説明できますか? – glibdud

+0

あなたは言葉を言うとき、辞書の言葉を意味するのか、単に文字の集合、つまり文字列を意味しますか? – RandomHash

答えて

1

あなたは問題を複雑にしました。 shuffleを使用して文字を並べ替えることができます。次に最初のn文字を入力して新しい単語を作成します。nは最小長と最大長の間の乱数です。

word_list = list(words) 

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

またはおそらく 'random.sample'を使用してください... –

+0

ありがとうございます。決してそれを考えなかった – ebere

関連する問題