Есть ли способ ограничить количество слов в предложении?

#python #random

#python #Случайный

Вопрос:

Я создал этот генератор случайных предложений, но мне было интересно, как я могу ограничить длину предложения.

 from collections import defaultdict
import random

with open("Hannibal.txt") as f:
    words = f.read().split()

word_dict = defaultdict(list)
for word, next_word in zip(words, words[1:]):
    word_dict[word].append(next_word)

sentence = []
word = "Hannibal"
while not word.endswith("."):
    sentence.append(word)
    word = random.choice(word_dict[word])
    ...
sentence = " ".join(sentence)   "."
print(sentence)
 

Ответ №1:

Самым простым способом было бы добавить счетчик в ваш цикл while следующим образом:

 counter = 0
MAX_LENGTH = 30; # max 30 words per sentence

while not word.endswith(".") and counter < MAX_LENGTH:
    sentence.append(word)
    counter = counter   1
    word = random.choice(word_dict[word])
    ...