【发布时间】:2016-12-15 07:27:51
【问题描述】:
我制作了一个示例生成器,它的行为应该给我正确的结果,但是每当我在这种情况下尝试打印它时,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)
【问题讨论】:
-
格式化您的代码。
-
它为您提供 dict 列表作为结果,对于 people_generator(6) 它在列表中提供 6 个 dicts。那你期待什么输出呢?
-
产量超出了 Vadim 指出的循环范围,谢谢。
标签: python-2.7 list generator