python,指定长度的无限随机语句生成器

时间:2015-11-14 21:57:54

标签: python generator

我有一本字典

{
    'went': ['up', 'up'],
    'water': ['spout'],
    'all': ['the'],
    'again': [],
    'up': ['the', 'all', 'the'],
    'spider': ['went', 'out', 'went']
}    

...从文本文件(文件名)

创建

基于这个字典,我必须创建指定长度的无限随机句子。它将从字典中的随机单词(一个键)开始,然后从其后面的单词列表中选择另一个随机单词,然后从第二个单词后面的单词列表中选择另一个随机单词,依此类推,直到它有所需的单词数。然后它将所有这些单词作为一个句子。

def sentence_generator(filename, length=10):
     """
     Makes up random sentences based on that dictionary.

     Parameters: a filename that refers to a text file to 'imitate',
                 a length that will be the number of words in the generated
                 sentence.  If omitted the length will default to 10.
     """
     random.seed(1) # set the seed for the random generator

     my_dict1 = learn(filename)
     while True:
         for key, value in my_dict1.items(): 
             my_list = my_dict1.values()
             yield my_dict1[key]
             random.choice(sorted(my_list))

我需要知道如何在函数中使用'length'。我不知道如何

1 个答案:

答案 0 :(得分:0)

您正在尝试编写yieldlength字的生成器。因此,您可以更改while循环以计算生成的单词数,并在length个单词后停止。