我是新的发电机和合作。我试图用生成器模拟常见的直方图问题(给定一个列表,返回该列表中每个元素的出现次数)。你知道吗
def genFunc():
dct = {}
while True:
num = yield
if num not in dct.keys():
dct[num]=1
else:
dct[num]+=1
print dct
g = genFunc()
next(g)
for each in [1,1,1,2]:
print g.send(each)
通过上面的代码,我可以打印出字典“dct”在每个阶段的状态。如何将其返回到调用函数?如果我在while块之外使用return,我会得到错误-不能使用yield的return。你知道吗
据我所知,send中传递的值由生成器在yield语句中接收。在这种情况下,理想情况下我希望传递一个数字/整数并返回dict的当前状态
yield
“返回”数据。您使用它来接收来自调用者的数据,但也可以用于发送数据:send
返回生成的内容。你知道吗相关问题 更多 >
编程相关推荐