无法将生成器打印为列表

时间:2016-12-15 07:27:51

标签: python-2.7 list generator

我做了一个样本生成器,它的行为应该给我正确的结果,但每当我尝试在这种情况下打印它时,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)

1 个答案:

答案 0 :(得分:0)

很可能你在yield循环之外有for语句 - 因此,生成器只返回最后一个person。将语句放在循环中将解决问题。