我做了一个样本生成器,它的行为应该给我正确的结果,但每当我尝试在这种情况下打印它时,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)
答案 0 :(得分:0)
很可能你在yield
循环之外有for
语句 - 因此,生成器只返回最后一个person
。将语句放在循环中将解决问题。