无法将发电机打印为列表



我制作了一个样本发生器,它的行为应该给我正确的结果,但是每当我尝试在这种情况下打印它,6,迭代,它只会打印出一个,然后随机打印出来。我想要所有6个,好像我以相同格式列出列表一样。谢谢!

这是代码:

import random
names = ['Mike', 'John', 'Tom', 'Bill', 'Ted']
majors = ['Math', 'CS', 'Chem', 'History', 'Arts']
def people_generator(num_people):
    for i in xrange(num_people):
        person = {
            'id number': i,
            'name': random.choice(names),
            'major': random.choice(majors)
        }
        yield person
folk = people_generator(6)
print list(folk)

很可能您在 for循环外有yield语句 - 结果,生成器仅返回最后一个person。将语句放入循环中将解决问题。

最新更新